【问题标题】:Accessing SD CARD and doing FILE IO Operations访问 SD CARD 并执行 FILE IO 操作
【发布时间】:2016-02-28 06:30:33
【问题描述】:

我正在尝试创建一个文件夹,然后执行一些文件 IO 操作! 我正在使用索尼 Xperia Z 进行测试! 我现在知道我已经对位置进行了硬编码,但它不允许我创建文件夹!

  File appPath = new File("/storage/sdcard1/folder");
        if (!appPath.exists()) {
            appPath.mkdirs();
}

我使用的 targetSdkVersion 为 22 我的手机上有棒棒糖。 我试过了

appPath.mkDir();

也是如此,但所有这些都给出了 False 值。 而且我已经添加了清单的权限

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

我尝试了许多不同的开源文件管理器,但没有一个能够创建文件夹,但是 ES 文件管理器能够创建文件夹并进行文件 IO 操作!

【问题讨论】:

  • 检查 mkdirs() 的返回值,如果为 false 则不要继续,而是显示一个 toast 说明。
  • Lollipop 不允许您写入 micro sd 卡。
  • @JaredRummler 非常感谢!

标签: android file-io android-sdcard mkdir


【解决方案1】:

不要硬编码像/sdcard 这样的全局路径,而是使用Environment.getExternalStorageDirectory() 和相关方法。这是一个工作示例。

   public static String getNewFolderPath() {
        File folder = new File(Environment.getExternalStorageDirectory()
                .toString() + File.separator + "folder");
        if (!folder.exists())
            folder.mkdirs();
        return folder.getAbsolutePath();
    }

编辑: 欲了解更多信息检查:

希望对你有帮助!

【讨论】:

  • getExternalStorageDirectory 给出 /storage/emulated/0 这是我手机的内部存储!顺便说一句,问题不在于硬编码,问题在于我无法在 SD 卡中写入!
  • 是的,我明白,但Environment.getExternalStorageDirectory() 用于获取 SD 卡路径,我用一些链接编辑了我的答案,这些链接可以解释你的实际问题。祝你好运:)
  • 没有。 getExternalStorageDirectory() 用于获取外部存储的路径。在大多数设备中,这不是可移动 micro sd 卡的路径。
  • @g2o 我没有获取 SD 卡路径或内部存储路径的问题,关键是即使我硬编码正确的路径,我也无法写入外部 SD 卡!
猜你喜欢
  • 2016-06-11
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多