getExternalFilesDir()
是 Android 中的一個(gè)方法,用于獲取應(yīng)用的外部文件目錄。這個(gè)目錄用于存儲(chǔ)應(yīng)用生成的文件,這些文件在外部存儲(chǔ)設(shè)備上,并且與用戶的數(shù)據(jù)分開。這對(duì)于保存用戶生成的內(nèi)容(如圖片、音頻等)非常有用。
要使用 getExternalFilesDir()
,請(qǐng)按照以下步驟操作:
<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)限。
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);
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ǔ)公共目錄的訪問受到限制。