getExternalFilesDir()
是 Android 中的一个方法,用于获取应用的外部文件目录。这个目录用于存储应用生成的文件,这些文件在外部存储设备上,并且与用户的数据分开。这对于保存用户生成的内容(如图片、音频等)非常有用。
要使用 getExternalFilesDir()
,请按照以下步骤操作:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
对于 Android 6.0(API 级别 23)及更高版本,还需要在运行时请求这些权限。
getExternalFilesDir()
方法。这个方法需要一个参数,表示存储类型。有以下几种类型可供选择:Environment.DIRECTORY_DOCUMENTS
:返回一个包含文档的目录。Environment.DIRECTORY_DOWNLOADS
:返回一个包含下载文件的目录。Environment.DIRECTORY_PICTURES
:返回一个包含图片的目录。Environment.DIRECTORY_MUSIC
:返回一个包含音乐的目录。Environment.DIRECTORY_RINGTONES
:返回一个包含铃声的目录。null
:返回应用的根目录下的外部文件目录。例如,要获取包含图片的目录,可以这样做:
File externalFilesDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File
对象,你可以创建、读取、修改和删除文件。例如,要在上述示例中创建一个新的空文件,可以这样做: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()
返回的目录仅对应用可见,其他应用无法访问。如果你需要让其他应用访问这些文件,可以考虑使用外部存储的公共目录(如 Environment.getExternalStoragePublicDirectory()
)。但请注意,从 Android 10(API 级别 29)开始,对外部存储公共目录的访问受到限制。