Android:创建文件时出错:ENOENT(无此文件或目录)

时间:2018-07-05 10:22:11

标签: java android file

我正在尝试使用此代码创建一个新文件,但我遇到了“ java.io.IOException:打开失败:ENOENT(无此类文件或目录)”

这是我的代码:希望您能为我提供帮助。

        final File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + "/"
                + MainActivity.getContext().getPackageName() + "/wifip2pshared-" + System.currentTimeMillis()
                + ".jpg");
        Log.d("WIFI","file created :"+f.getAbsolutePath());
        File dirs = new File(f.getParent());
        Log.d("WIFI","dir created :"+dirs.getAbsolutePath());
        dirs.mkdirs();
        f.createNewFile();    

我确实在android清单中声明了权限。

2 个答案:

答案 0 :(得分:2)

将此添加到清单应用程序中

android:requestLegacyExternalStorage="true"

答案 1 :(得分:0)

如果您使用的是Android M或更高版本,请处理运行时权限

      File folder = new File(Environment.getExternalStorageDirectory() +
                File.separator + "wifip2pshared/" + dirName);
        boolean success = true;
        if (!folder.exists()) {
            success = folder.mkdirs();
        }
        if (success) {
            // Do something on success
        } else {
            // Do something else on failure

}

  File dir = new File("storage/emulated/0/wifip2pshared/" + dirName); 
try { 
      if (!dir.exists()) { 
          if (dir.mkdir()) { 
              System.out.println("Directory created"); 
           } else { 
              System.out.println("Directory is not created"); 
           } 
     } 
 } catch (Exception e) { 
        e.printStackTrace(); 
 }