【发布时间】:2021-12-30 08:41:00
【问题描述】:
如何在没有管理所有文件权限的情况下在( /storage/emulated/0/ ) 中创建目录。
这是我的代码:
File myFolder=new File(Environment.getExternalStorageDirectory(),"testDir");
if(!myFolder.exists() || myFolder.isFile()){
if(myFolder.isFile()){
Toast.makeText(getApplicationContext(), "'testDir' exists as file", Toast.LENGTH_LONG).show();
return;
}
try{
myFolder.mkdir();
Toast.makeText(getApplicationContext(), "Directories created successfully", Toast.LENGTH_SHORT).show();
} catch(Exception e){
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
在 android 11 上它不起作用,因为它需要管理所有文件权限。
【问题讨论】:
-
data / 0 / emulated /没有这样的路径。当然不是所有这些空间。取而代之的是/storage/emulated/0作为外部存储的根。 -
我修复了它,我如何在没有管理所有文件权限的情况下创建文件夹
-
你不能。在 Documents、Download、DCIM、Pictures 等公共目录之一中创建自己的文件夹。
-
但是有一个应用程序不需要请求权限就可以管理所有文件
-
myFolder.mkdir();更好:if (!myFolder.exists()) if (!myFolder.mkdir()) return;try-catch 没用,因为 mkdir() 不会抛出。
标签: java android file permissions