2017-04-25 87 views
0

我試圖用我的android應用程序在我的手機存儲(不是在SD卡上)生成一個文件夾,但我的mkdirs()不起作用。Android mkdirs()不起作用

我已在我的清單中android.permission.WRITE_EXTERNAL_STORAGE,並用這個基本的代碼:

File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "/MyDirName"); 

    if (!mediaStorageDir.exists()) { 
     if (!mediaStorageDir.mkdirs()) { 
      Log.d("App", "failed to create directory"); 
     } 
    } 

,但它不工作...的mkdirs總是在虛假和不創建的文件夾。

我已經試過了所有的東西,看着所有關於它的主題,但沒有任何工作,我不知道爲什麼。

+0

你需要運行的權限在Android API 23+ –

+0

在Android 6.0中,你需要申請許可。在創建新文件'ActivityCompat.requestPermissions(this,new String [] {Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE},1);' 請參閱[https://developer.android。 com/training/permissions/requests.html](https://developer.android.com/training/permissions/requesting.html) –

+0

「該文件夾沒有創建」 - 你如何測試這個? – CommonsWare

回答

4

,如果你的目標和編譯SDK是高於棒棒糖,那麼請參考this鏈接

File sourcePath = Environment.getExternalStorageDirectory(); 

       File path = new File(sourcePath + "/" + Constants.DIR_NAME + "/"); 

       path.mkdir(); 
+0

謝謝!對於您的第二個解決方案,我的Android Studio不識別「Constants.DIR_NAME」變量。我需要導入一些東西嗎? –