本文内容来自中文网文档"文件管理器"组件部分,详细介绍了每一种文件作用域的特点及用法。
下面是每种作用域
类型的简述:
-
App
[推荐]
:Android 2.2及更高版本上文件将从应用程序特定存储中读取和写入,在 Android 早期版本上,文件将写入兼容存储中。-
App的根目录为:
/storage/emulated/0/Android/data
。读写文件在指定的files
目录下,如图:(这是AI伴侣的App目录,如果最终编译apk运行,则到
appinventor.ai_admin.[project_name]
目录下查看文件) -
写入文件的参考代码如下:
-
生成的文件如下:
-
-
程序包 :从应用程序包中读取文件,应用程序包属于只读存储,不可写入。
-
缓存 :文件将从应用程序的缓存目录读取和写入,可以在缓存中重新创建临时文件,也允许用户清理临时文件以重新获得存储空间。
-
兼容 :文件将使用 App Inventor 在nb187版本之前的规则从文件系统读取和写入,也就是说,将从中读取以单个
/
开头的文件名写入外部存储目录的根目录,例如/sdcard/
。 兼容功能将无法在 Android 11 或更高版本上运行 。 中文网注:我们与MIT官方最新版本一样,出于安全性考虑,不支持直接从根目录访问文件,如/sdcard/
,推荐使用App模式。 -
私有 :文件将从应用程序的私有目录读取和写入,使用这个作用域存储的数据对其他App不可见。 与App模式类似,读写文件的目录在
files
的data子目录
下: -
共享 :文件将从设备的共享媒体目录中读取和写入,例如
图片
目录。
- 注1:在
兼容
模式下,文件名可以采用以下三种形式之一:- 私有文件:没有前导
/
,写入应用程序私有存储(例如,file.txt
) - 外部文件:有一个前导的
/
,写入公共存储(例如,/file.txt
) - 应用程序包:有两个前导的
//
,只能读取 (例如,//file.txt
)
- 私有文件:没有前导
- 注2:在所有作用域内,以两个斜杠 (
//
) 开头的文件名是程序包中的文件,只读,不可写。