【问题标题】:android File.exists fails to check a file on SD cardandroid File.exists 无法检查 SD 卡上的文件
【发布时间】:2011-05-16 03:03:51
【问题描述】:

if(new File("/mnt/sdcard/t.m").exists()) {...}

当我使用 Eclipse 创建一个 java 程序并在我的 Android 手机上调试它时,它测试正确。 但是当我把它放到我的Android系统的一个应用程序中时,它并没有检测到这个文件。

而且,在另一个应用程序中(也内置在我的 Android 系统中),尽管我在 AndroidManifest.xml 中添加了以下内容,

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

下面的代码导致一个异常,说没有权限,

File f=new File("/mnt/sdcard/a.t"); f.createNewFile();

谢谢。我是 Android 新手。

【问题讨论】:

    标签: android android-sdcard file-exists


    【解决方案1】:

    Permission to write to the SD card:

    你说得对,SD 卡 目录是 /sdcard 但你不应该 对其进行硬编码。相反,做一个 拨电至 Environment.getExternalStorageDirectory() 获取目录:

    文件 sdDir = Environment.getExternalStorageDirectory(); 如果你还没有这样做,你 将需要为您的应用程序提供正确的 写入 SD 卡的权限 将此添加到您的清单中:

     <uses-permission
      android:name="android.permission.WRITE_EXTERNAL_STORAGE"
      />
    

    只需将其更改为读取(而不是写入)

    【讨论】:

    • 我已经尝试了你所有的代码。不工作。该文件可以被adb shell列出,所以硬编码不会出错。
    • 对不起,我很着急,没有正确阅读!到这里查看存储状态:developer.android.com/guide/topics/data/…
    • Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()) 我已经检查过了。小测试程序工作验证了它。问题是我的“make”大程序和 Eclipse 小程序之间的区别。
    猜你喜欢
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-13
    • 2017-07-09
    • 1970-01-01
    相关资源
    最近更新 更多