【问题标题】:Why does my File.mkdirs() always return false?为什么我的 File.mkdirs() 总是返回 false?
【发布时间】:2016-07-22 08:43:01
【问题描述】:

我正在遵循本指南中给出的代码 sn-p。以下行(尤其是以下行中的最后一个 if 块)存在问题:

File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_PICTURES), "MyCameraApp");

    // This location works best if you want the created images to be shared
    // between applications and persist after your app has been uninstalled.

    // Create the storage directory if it does not exist
    if (! mediaStorageDir.exists()){
        if (! mediaStorageDir.mkdirs()){
            Log.d("MyCameraApp", "failed to create directory");
            return null;
        }
    }

问题是上面sn-p中的return null;总是被执行。

这意味着mediaStorageDir.mkdirs() 总是返回false。

问题是为什么以及我可以做些什么来解决它?

【问题讨论】:

  • @Solace 你的 targetSdk 是什么?
  • 如果目录也存在则返回false
  • @Solace 如果它的 23 比 refer 这个
  • 添加运行时权限,会有帮助
  • 请确保您在 android manifest 文件中具有写入权限

标签: java android file android-external-storage mkdirs


【解决方案1】:

你设置了吗

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

在您的清单文件中?

【讨论】:

  • 不,我只有WRITE_EXTERNAL_STORAGE
  • 您可能需要两者。试一试。
  • 你不需要两者。你有写权限,读权限是“内置的”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-23
相关资源
最近更新 更多