2015-12-20 35 views
-2

我知道類似的問題已經被提出,但我已經嘗試去做我在那裏讀的東西。Android無法訪問mkdirs()

我寫需要訪問和創建一些文件的應用程序,並在我的onCreate()方法我稱之爲directoryMaker()方法:

static final String externalPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getAbsolutePath()+"/MyFolder"; //This is a global variable 

private void directoryMaker(){ 
    if(externalIsMounted()){ 
     File external = new File(externalPath); 
     if(!external.exists()){ 
      if(external.mkdirs()){ 
       Log.i("GalleryActivity", "Folder created"); 
      } 
      else{ 
       Log.e("GalleryActivity", "Folder not created"); 
      } 

     } 
    } 
} 

private boolean externalIsMounted(){ 
    return Environment.getExternalStorageState().equals(
      Environment.MEDIA_MOUNTED); 
} 

這是我的清單(至少相對部分):

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

運行它會導致「文件夾未創建」錯誤:我不知道此時可能會出現什麼問題。

PS:抱歉我的英文不好,不是我的第一語言。

編輯1 整個AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="course.exercise.dailyselfy" 
    android:versionCode="1" 
    android:versionName="1.0"> 

    <uses-permission 
     android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <application android:allowBackup="true" android:label="@string/app_name" 
     android:icon="@mipmap/ic_launcher" android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:theme="@android:style/Theme.Holo.Light.DarkActionBar" 
      android:name="a.b.MyApp.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 

</manifest> 
+0

你把它們放在AndroidManifest的哪裏?你能向我們展示完整的清單嗎? – Nikola

+0

標記中,無論如何,我已經在問題中添加了它。另外:爲什麼這個問題已被降低?它有什麼問題? –

回答

2

嘗試,而不是編碼路徑自己

File external = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyFolder"); 

然後調用mkdir()方法下面的構造。
您不需要READ_EXTERNAL_STORAGE權限,因爲WRITE_EXTERNAL_STORAGE隱式使用它。

+0

試過了,但它給了我同樣的問題。還要感謝許可的信息。 –

0

試試這個:

File root = Environment.getExternalStorageDirectory(); 
    String dirPath = root.toString() + "/Pictures/Your folder/"; 
    File dir = new File(dirPath); 

    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 
0

首先讓我原諒,我明白我的問題是如何的愚蠢:我是新來的Android程序,所以......

反正代碼有沒有任何問題,但我在AndroidStudio模擬器上運行它,我不得不向應用程序提供設置 - >App菜單中的權限。