File.mkdirs() 不创建文件夹 - Android Marshmallow (API 23)
File.mkdirs() does not create the folders - Android Marshmallow (API 23)
Android 清单权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Java 文件(第一次尝试)
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/newAppFolder";
File dir = new File(path);
dir.mkdirs();
Java 文件(第二次尝试)
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)) {
File dir = new File(Environment.getExternalStorageDirectory(), "newAppFolder");
if(!dir.exists()) {
dir.mkdirs();
Toast.makeText(getApplicationContext(), "Folder Created", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(getApplicationContext(), "Folder exists", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(getApplicationContext(), "SD Card Not Found", Toast.LENGTH_LONG).show();
不幸的是,这两种尝试都没有创建我需要的新 AppFolder 文件。有人可以告诉我我做错了什么吗?
注意:在第二次尝试时,应用程序 toast 一直显示文件夹已创建
从 Android 6.0(API 级别 23)开始,用户在应用 运行 时向应用授予权限,而不是他们安装了应用程序。
如果您的目标 sdk 是 23,您应该检查 this link 并查看在运行时请求权限是否可以修复它。
Android 清单权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Java 文件(第一次尝试)
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/newAppFolder";
File dir = new File(path);
dir.mkdirs();
Java 文件(第二次尝试)
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state)) {
File dir = new File(Environment.getExternalStorageDirectory(), "newAppFolder");
if(!dir.exists()) {
dir.mkdirs();
Toast.makeText(getApplicationContext(), "Folder Created", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(getApplicationContext(), "Folder exists", Toast.LENGTH_LONG).show();
}
else
Toast.makeText(getApplicationContext(), "SD Card Not Found", Toast.LENGTH_LONG).show();
不幸的是,这两种尝试都没有创建我需要的新 AppFolder 文件。有人可以告诉我我做错了什么吗?
注意:在第二次尝试时,应用程序 toast 一直显示文件夹已创建
从 Android 6.0(API 级别 23)开始,用户在应用 运行 时向应用授予权限,而不是他们安装了应用程序。
如果您的目标 sdk 是 23,您应该检查 this link 并查看在运行时请求权限是否可以修复它。