簡體   English   中英

無法在Android 6.0以上版本的內部存儲中創建文件夾

[英]Unable to create a folder in internal storage on android 6.0+

我首先嘗試在外部目錄中創建一個文件夾

Environment.getExternalStorageDirectory()

在我的AndroidManifest.xml中,我有這兩行,所以一切都應該沒問題。

android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE

但是現在我知道您必須在用戶每次安裝該應用程序時都向用戶詢問權限,如果他不給我權限,我的應用程序將無法運行。

所以我知道,您不需要在內部存儲器中寫入的權限。 所以我用了命令

getApplicationContext().getFilesDir()

讀取/寫入存儲。 但它不能在裝有Android 6.0或更高版本的設備上使用。 我創建文件的代碼是

String mainPath = getApplicationContext().getFilesDir().getAbsolutePath() + "//testFile/";
    File dir = new File(mainPath);

    if(!dir.exists())
    {
        dir.mkdir();

        Intent i = new Intent(getApplicationContext(),MainActivity.class);
        startActivity(i);
    } else { }

每當我運行該應用程序時,我都會進入else {}部分,我也不知道為什么。 如果您能幫助我,那就太好了。

謝謝!

這意味着該文件存在。 如果文件不存在,請創建它,然后開始您的活動。

if(!dir.exists()){
    dir.mkdir();
}

Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);

創建File對象不會創建目錄。 為此,您需要調用dir.mkdirs()

另外,獲取文件的正確方法是File dir = new File(getApplicationContext().getFilesDir, "testFile"); 這樣,您無需假設分隔符或進行字符串操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM