【问题标题】:Cannot mkdir folder in Android无法在 Android 中创建 mkdir 文件夹
【发布时间】:2014-11-30 12:39:17
【问题描述】:

我在运行函数 Mkdir() 时遇到问题。我该怎么办? 我已经添加了读/写权限:

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

下面是我的代码sn-p:

private File getTempFile(Context context)
    {

        File path;
        //Find the dir to save cached images
        if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){

            path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/");
        }
        else {
            path=context.getCacheDir();
        }
        String pictureFileName = Long.toHexString(System.currentTimeMillis())+".jpg";
        if (!path.exists())
        {
            path.mkdir();
        }
        return new File(path, pictureFileName);
    }

请帮忙。

【问题讨论】:

  • 试试这个path.mkdirs();

标签: android camera directory photo mkdir


【解决方案1】:
 path=new File(android.os.Environment.getExternalStorageDirectory(),"/Tanker/Foto/");

mkdir 不会创建完整路径。您必须为此使用mkdirs

来自文档

创建由此抽象路径名命名的目录,包括任何 必要但不存在的父目录。

例如

    if (!path.exists()) {
        path.mkdirs();
    }

【讨论】:

    【解决方案2】:

    创建由此文件命名的目录,假设其父级存在。如果您还想创建缺失的父级,请使用 mkdirs()。

    请注意,此方法在失败时不会抛出 IOException。调用者必须检查返回值。另请注意,如果目录已存在,则此方法返回 false。如果您想知道返回时目录是否存在,请使用 (f.mkdir() || f.isDirectory()) 或直接忽略此方法的返回值并直接调用 isDirectory()。 返回

    true if the directory was created, false on failure or if the directory already existed. 
    

    检查返回值e比你得到问题的正确原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-22
      • 2011-08-22
      • 2022-12-03
      • 2016-09-25
      • 2017-12-10
      • 2015-03-23
      • 1970-01-01
      • 2014-02-22
      相关资源
      最近更新 更多