Context.GetExternalFilesDir(String) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回主共享/外部存储设备上的目录的绝对路径,应用程序可在其中放置其拥有的永久性文件。
[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_MUSIC
、android.os.Environment#DIRECTORY_PODCASTS
、android.os.Environment#DIRECTORY_RINGTONES
、android.os.Environment#DIRECTORY_ALARMS
、android.os.Environment#DIRECTORY_NOTIFICATIONS
android.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 文档。
此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。