Context.GetExternalFilesDir(String) 方法

定义

返回主共享/外部存储设备上的目录的绝对路径,应用程序可在其中放置其拥有的永久性文件。

[Android.Runtime.Register("getExternalFilesDir", "(Ljava/lang/String;)Ljava/io/File;", "GetGetExternalFilesDir_Ljava_lang_String_Handler")]
public abstract Java.IO.File? GetExternalFilesDir (string? type);
[<Android.Runtime.Register("getExternalFilesDir", "(Ljava/lang/String;)Ljava/io/File;", "GetGetExternalFilesDir_Ljava_lang_String_Handler")>]
abstract member GetExternalFilesDir : string -> Java.IO.File

参数

type
String

要返回的目录的类型。 可以是null文件目录的根目录或子目录的下列常量之一:android.os.Environment#DIRECTORY_MUSICandroid.os.Environment#DIRECTORY_PODCASTSandroid.os.Environment#DIRECTORY_RINGTONESandroid.os.Environment#DIRECTORY_ALARMSandroid.os.Environment#DIRECTORY_NOTIFICATIONSandroid.os.Environment#DIRECTORY_PICTURES、 或 android.os.Environment#DIRECTORY_MOVIES

返回

特定于应用程序的目录的绝对路径。 如果共享存储当前不可用,可能会返回 null

属性

注解

返回主共享/外部存储设备上的目录的绝对路径,应用程序可在其中放置其拥有的永久性文件。 这些文件是应用程序内部的,通常不以媒体的形式对用户可见。

这与卸载应用程序时这些文件将被删除一样 #getFilesDir() ,但存在一些重要差异: <ul><li>共享存储可能并不总是可用,因为用户可以弹出可移动媒体。 可以使用 检查 Environment#getExternalStorageState(File)媒体状态。 <li>未对这些文件强制执行任何安全性。 例如,任何保留 android.Manifest.permission#WRITE_EXTERNAL_STORAGE 的应用程序都可以写入这些文件。 </ul>

如果模拟 (由) 确定 Environment#isExternalStorageEmulated(File) 的共享存储设备,则它的内容由专用用户数据分区提供支持,这意味着在此处存储数据而不是 等返回 #getFilesDir()的专用目录没有什么好处。

从 开始 android.os.Build.VERSION_CODES#KITKAT,无需任何权限即可读取或写入返回的路径;调用应用始终可以访问该路径。 这仅适用于为调用应用程序的包名称生成的路径。 若要访问属于其他包的路径, android.Manifest.permission#WRITE_EXTERNAL_STORAGE 需要和/或 android.Manifest.permission#READ_EXTERNAL_STORAGE

在具有多个用户 ((如) 所述 UserManager )的设备上,每个用户都有自己的独立共享存储。 应用程序仅有权访问其运行方式的用户的共享存储。

如果插入不同的共享存储介质,返回的路径可能会随时间而改变,因此应仅保留相对路径。

下面是在应用程序的共享存储中操作文件的典型代码示例:

{

android.content.Context.getExternalFilesDir(java.lang.String)Java 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

适用于

另请参阅