2016-11-04 28 views
0

新しいフォルダを作成できません。mkdirsを使用すると常にfalseを返します。私はアンドロイドスタジオのデバッグモードでAndroid 6.0.1を使用しています。 APIレベル19以降、このdocsAndroidは新しいフォルダを作成できません

で、このアクセス許可が によって返され、アプリケーション固有のディレクトリ内 読み取り/書き込みファイルに必要とされていないので、私が書き込み権限を使用していませんでした

<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()); 

getExternalFilesDir(String)およびgetExternalCacheDir()。

答えて

0

docは、書き込み権限なしでgetExternalFilesDir(String)とgetExternalCacheDir()によって返されたディレクトリ内のファイルのみを読み書きできるとしています。しかし、Environment.getExternalStorageDirectory()でディレクトリパスを取得します。

Javadoc Environment.getExternalStorageDirectory()は言う。このパスへの書き込み

はWRITE_EXTERNAL_STORAGEの許可を必要とし、キットカットで始まる、読み取りアクセスを使用すると、書き込み権限を保持している場合、自動的に付与されREAD_EXTERNAL_STORAGE許可が必要です。

アプリケーションが内部データを格納する必要がある場合は、getExternalFilesDir(String)、getExternalCacheDir()、またはgetExternalMediaDirs()を使用することを検討してください。

関連する問題