android getexternalfilesdir如何使用

小樊
81
2024-11-20 15:41:58
欄目: 編程語言

getExternalFilesDir() 是 Android 中的一個(gè)方法,用于獲取應(yīng)用的外部文件目錄。這個(gè)目錄用于存儲(chǔ)應(yīng)用生成的文件,這些文件在外部存儲(chǔ)設(shè)備上,并且與用戶的數(shù)據(jù)分開。這對(duì)于保存用戶生成的內(nèi)容(如圖片、音頻等)非常有用。

要使用 getExternalFilesDir(),請(qǐng)按照以下步驟操作:

  1. 首先,確保你的應(yīng)用已經(jīng)獲得了外部存儲(chǔ)權(quán)限。在 AndroidManifest.xml 文件中添加以下權(quán)限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

對(duì)于 Android 6.0(API 級(jí)別 23)及更高版本,還需要在運(yùn)行時(shí)請(qǐng)求這些權(quán)限。

  1. 在你的 Activity 或 Fragment 中,調(diào)用 getExternalFilesDir() 方法。這個(gè)方法需要一個(gè)參數(shù),表示存儲(chǔ)類型。有以下幾種類型可供選擇:
  • Environment.DIRECTORY_DOCUMENTS:返回一個(gè)包含文檔的目錄。
  • Environment.DIRECTORY_DOWNLOADS:返回一個(gè)包含下載文件的目錄。
  • Environment.DIRECTORY_PICTURES:返回一個(gè)包含圖片的目錄。
  • Environment.DIRECTORY_MUSIC:返回一個(gè)包含音樂的目錄。
  • Environment.DIRECTORY_RINGTONES:返回一個(gè)包含鈴聲的目錄。
  • null:返回應(yīng)用的根目錄下的外部文件目錄。

例如,要獲取包含圖片的目錄,可以這樣做:

File externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
  1. 使用返回的 File 對(duì)象,你可以創(chuàng)建、讀取、修改和刪除文件。例如,要在上述示例中創(chuàng)建一個(gè)新的空文件,可以這樣做:
File imageFile = new File(externalFilesDir, "example_image.jpg");
try {
    if (imageFile.createNewFile()) {
        Log.d("ExternalFilesDir", "New file created: " + imageFile.getName());
    } else {
        Log.d("ExternalFilesDir", "File already exists.");
    }
} catch (IOException e) {
    e.printStackTrace();
}

注意:getExternalFilesDir() 返回的目錄僅對(duì)應(yīng)用可見,其他應(yīng)用無法訪問。如果你需要讓其他應(yīng)用訪問這些文件,可以考慮使用外部存儲(chǔ)的公共目錄(如 Environment.getExternalStoragePublicDirectory())。但請(qǐng)注意,從 Android 10(API 級(jí)別 29)開始,對(duì)外部存儲(chǔ)公共目錄的訪問受到限制。

0