问题描述
我想为通过我的应用保存的图像创建一个单独的目录。但是我不知道我的代码不符合要求。这就是我要在外部存储的根目录中创建新目录的步骤:
File root = Environment.getExternalStorageDirectory();
File directory = new File(root,"MYFOLDER");
if(!directory.exists()) {
directory.mkdirs();
}
我已经在我的应用清单文件中添加了<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
权限。而且我尝试了this,this和this等其他工具,但没有任何效果。
解决方法
我使用有效的方法
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”