getExternalFilesDir()
是 Android 中的一个方法,用于获取应用的外部文件目录。这个目录用于存储应用生成的文件,这些文件在外部存储设备上,并且与用户的数据分开。这对于保存用户生成的内容(如图片、音频等)非常有用。
要使用 getExternalFilesDir()
,请按照以下步骤操作:
- 首先,确保你的应用已经获得了外部存储权限。在 AndroidManifest.xml 文件中添加以下权限:
对于 Android 6.0(API 级别 23)及更高版本,还需要在运行时请求这些权限。
- 在你的 Activity 或 Fragment 中,调用
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)开始,对外部存储公共目录的访问受到限制。