2016-11-04 128 views
0

我無法以任何方式創建新文件夾,使用mkdirs時它總是返回false。我在Android Studio調試模式下使用Android 6.0.1。Android無法創建新文件夾

<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

該文檔說,只有在沒有寫入權限的情況下,getExternalFilesDir(String)和getExternalCacheDir()返回的目錄中才能讀取/寫入文件。但是你通過Environment.getExternalStorageDirectory()獲取目錄路徑。

Javadoc Environment.getExternalStorageDirectory()說。

寫這條道路需要WRITE_EXTERNAL_STORAGE許可,並在奇巧開始,讀取訪問需要READ_EXTERNAL_STORAGE權限,如果你持有的寫權限被自動授予。

從KITKAT開始,如果您的應用程序只需要存儲內部數據,請考慮使用getExternalFilesDir(String),getExternalCacheDir()或getExternalMediaDirs(),它們不需要讀取或寫入權限。