我试图在我的手机存储(不是SD卡)中生成一个包含我的android应用程序的文件夹,但我的mkdirs()无法工作。
我已经在清单中设置了android.permission.WRITE_EXTERNAL_STORAGE,并使用了以下基本代码:
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "/MyDirName");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("App", "failed to create directory");
}
}但它不起作用。mkdirs始终为false,并且不创建文件夹。
我已经尝试了所有的方法,看了所有关于它的话题,但都不起作用,我也不知道为什么。
发布于 2017-04-25 21:11:30
如果您的目标和编译sdk高于lolipop,请参阅this链接
或
File sourcePath = Environment.getExternalStorageDirectory();
File path = new File(sourcePath + "/" + Constants.DIR_NAME + "/");
path.mkdir();发布于 2021-07-09 15:33:47
如果您是Android Studio的模拟器和设备文件资源管理器,请确保右键单击模拟器的文件夹,然后单击“synchronize”以更新显示的文件。设备文件资源管理器不会自动实时更新。
发布于 2022-02-17 15:37:54
在为android API29和更高版本编写代码时,请在应用程序清单(AndroidManifest.xml)中使用以下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
然后在java文件中添加以下代码行
`ActivityCompat.requestPermissions(this, new String[]
{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
},
PackageManager.PERMISSION_GRANTED);
StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
StrictMode.setVmPolicy(builder.build());
file = new File(Environment.getExternalStorageDirectory().getPath(), "MyDirName/");
if (!file.exists()) {
try {
file.mkdirs();
} catch (Exception e) {
e.printStackTrace();
}
}`
https://stackoverflow.com/questions/43611526
复制相似问题