简体   繁体   English

Android无法创建新文件夹

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM