有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java mkdirs()不会在安卓中创建新目录

我试图在我的存储器中创建一些文件夹,并将相机中的图像存储到其中,但mkdirs总是返回false,已经尝试使用mkdir和canWrite,但仍然相同

2020-02-12 09:32:44.043 22914-23146/example.com.absensiapp D/TET: Folder Not Exist
2020-02-12 09:32:44.047 22914-23146/example.com.absensiapp D/TET: Failed To Create Directory

下面是创建文件夹和保存相机图像的代码

  String wholeFolderPath = fh.TRAINING_PATH + name;
  File dir = new File(wholeFolderPath);
  if(!dir.exists()) {
     Log.d("TET", "Folder Not Exist");
      //create new directory
      if(dir.mkdirs())
         fh.saveMatToImage(m, wholeFolderPath + "/");
      else
         Log.d("TET", "Failed To Create Directory");
   }
   else {
         Log.d("TET", "Folder Exist");
         //save the image to directory
         fh.saveMatToImage(m, wholeFolderPath + "/");
    }

已将权限放入我的清单和主要活动中

舱单:

 <uses-permission 安卓:name="安卓.permission.INTERNET" />
 <uses-permission 安卓:name="安卓.permission.CAMERA" />
 <uses-permission 安卓:name="安卓.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission 安卓:name="安卓.permission.WRITE_EXTERNAL_STORAGE" />

主要活动:

private static boolean hasPermissions(Context context, String... permissions) {
    if (context != null && permissions != null) {
        for (String permission : permissions) {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
                return false;
            }
        }
    }
    return true;
}

private void checkPermission() {
    int PERMISSION_ALL = 1;
    String[] PERMISSIONS = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE,
            Manifest.permission.CAMERA
    };

    if (!hasPermissions(this, PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
    }
}

共 (1) 个答案

  1. # 1 楼答案

    解决问题。在生成中降级我的targetSdkVersion。从29岁到21岁