[英]Android Cannot create new folder
I cannot create new folder any way, it always return false when use mkdirs. 我无法以任何方式创建新文件夹,使用mkdirs时总是返回false。 I am using Android 6.0.1 in android studio debug mode. 我在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());
I didn't use write permission since in this docs 自此文档以来,我没有使用写权限
Starting in API level 19, this permission is not required to read/write files in your application-specific directories returned by getExternalFilesDir(String) and getExternalCacheDir(). 从API级别19开始,读/写由getExternalFilesDir(String)和getExternalCacheDir()返回的应用程序特定目录中的文件不需要此权限。
The doc says you can read/write files only in the directories returned by getExternalFilesDir(String) and getExternalCacheDir() without write permission. 该文档说,您只能在没有写许可权的情况下,才能在getExternalFilesDir(String)和getExternalCacheDir()返回的目录中读取/写入文件。 But you get directory path by Environment.getExternalStorageDirectory(). 但是您可以通过Environment.getExternalStorageDirectory()获得目录路径。
Javadoc of Environment.getExternalStorageDirectory() says. Environment.getExternalStorageDirectory()的Javadoc说。
Writing to this path requires the WRITE_EXTERNAL_STORAGE permission, and starting in KITKAT, read access requires the READ_EXTERNAL_STORAGE permission, which is automatically granted if you hold the write permission. 写入此路径需要WRITE_EXTERNAL_STORAGE权限,并且从KITKAT开始,读取访问需要READ_EXTERNAL_STORAGE权限,如果您拥有写入权限,则会自动授予该权限。
Starting in KITKAT, if your application only needs to store internal data, consider using getExternalFilesDir(String), getExternalCacheDir(), or getExternalMediaDirs(), which require no permissions to read or write. 从KITKAT开始,如果您的应用程序仅需要存储内部数据,请考虑使用不需要读取或写入权限的getExternalFilesDir(String),getExternalCacheDir()或getExternalMediaDirs()。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.