我不能以任何方式创建新文件夹,使用mkdirs时它总是返回false。我在android studio调试模式下使用Android 6.0.1。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />`
String folder_main = "NewFolder";
Boolean success = false;
File f = new File(Environment.getExternalStorageDirectory(),folder_main
);
if (!f.exists()) {
Log.d("path","not exist");
success=f.mkdirs();
}
else
{
Log.d("path","exist");
}
Log.d("path",success.toString());
我没有使用写权限,因为在此docs
从API级别19开始,不需要此权限 在您返回的特定于应用程序的目录中读/写文件 getExternalFilesDir(String)和getExternalCacheDir()。
答案 0 :(得分:0)
该文档说您只能在没有写入权限的情况下在getExternalFilesDir(String)和getExternalCacheDir()返回的目录中读/写文件。但是你可以通过Environment.getExternalStorageDirectory()获得目录路径。
Environment.getExternalStorageDirectory()的Javadoc表示。
写入此路径需要WRITE_EXTERNAL_STORAGE权限,并且从KITKAT开始,读取权限需要READ_EXTERNAL_STORAGE权限,如果您持有写入权限,则会自动授予该权限。
从KITKAT开始,如果您的应用程序只需要存储内部数据,请考虑使用getExternalFilesDir(String),getExternalCacheDir()或getExternalMediaDirs(),它们不需要读取或写入权限。