2016-01-26 31 views
0

我無法在外部存儲文件夾中創建目錄。我創建了一個新項目,修改了清單並添加了代碼,如下所示。任何幫助將不勝感激。我更新了我的帖子,以包含下面提供的代碼不起作用。我唯一能想到的就是模擬器是問題所在。我正在運行Nexis API 32 x64。無法創建外部目錄

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest package="com.us.foobar" 
      xmlns:android="http://schemas.android.com/apk/res/android"> 

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 

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

來源:

public void mkdir() throws Exception 
{ 
    String root = Environment.getExternalStorageDirectory().getAbsolutePath(); 
    String dir = root + "/Foobar"; 

    File file = new File(dir); 
    if (!file.exists()) 
    { 
     if (!file.mkdirs()) 
     { 
      throw new Exception("Unable to create application data directory.\r\n\r\nDirectory: " + dir); 
     } 
    } 
} 
+0

「公共MainActivity()拋出Exception'm ???最好刪除它。 onCreate()在哪裏?這甚至編譯?你有什麼錯誤? – greenapps

+0

你不回答我的問題。你爲什麼不認真?你的代碼沒有意義。 – greenapps

回答

0

我呼籲的onCreate相同的功能,工作正常。看看我的代碼:

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     test(); 
    } 

    public void test() { 
     String root = Environment.getExternalStorageDirectory().getAbsolutePath(); 
     String dir = root + "/Foobar"; 

     File file = new File(dir); 
     if (!file.exists()) { 
      if (!file.mkdirs()) { 
       Log.e("Error", "Unable to create application data directory.\r\n\r\nDirectory: " + dir); 
      } 
     } 
    } 
} 
+0

你是認真的嗎?您的MainActivity由操作系統啓動時創建。但問題是MainActivity()被調用的地方。誰會這樣稱呼?你真的有這個名字的功能嗎?爲什麼?混淆人?它編譯是我的問題。 – greenapps

+0

好的@greenapps您的意見是有道理的。我刪除了我的答案的最後一個陳述,以避免混淆;)。 –

+0

???我的評論是針對OP的。不適合你。 – greenapps

0

使用API​​ 23我不得不要求的權限如下寫入文件系統之前:

ActivityCompat.requestPermissions(
        this, 
        new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 
        REQUEST_EXTERNAL_STORAGE 
      );