如何在根android外部存储中创建目录?

问题描述

我想为通过我的应用保存的图像创建一个单独的目录。但是我不知道我的代码不符合要求。这就是我要在外部存储的根目录中创建新目录的步骤:

File root = Environment.getExternalStorageDirectory();
File directory = new File(root,"MYFOLDER");
if(!directory.exists()) {
    directory.mkdirs();
}

我已经在我的应用清单文件添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />权限。而且我尝试了thisthisthis等其他工具,但没有任何效果

解决方法

我使用有效的方法

private static final String IMAGE_DIRECTORY = "/mydirectory";
File Directory = new File(
                Environment.getExternalStorageDirectory() + IMAGE_DIRECTORY);

        if (!Directory.exists()) {
            Directory.mkdirs();
        }
,

首先通过添加以下行来授予运行时存储权限,因为在android oreo之后,您需要授予运行时访问存储的权限

if (ContextCompat.checkSelfPermission(this,Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
        ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},1);
    }

然后您可以使用此代码

File apkStorage = new File(Environment.getExternalStorageDirectory() + "/" + "TestFolder");
 if (!apkStorage.exists()) {
        apkStorage.mkdir();
        Log.e(TAG,"Directory Created.");
}

向清单文件中的应用程序标签添加requestLegacyExternalStorage =“ true”