AppWorker

AppWorker教程-文件管理

2018-06-15  本文已影响13人  wtcgzh

文件管理


不同的移动操作系统都有自己的一套文件管理结构和文件处理的SDK。AppWorker平台屏蔽Android和iOS之间不同结构的差异,统一了文件处理和相关的处理组件。总体上分源码区,初始化数据区,数据区。不同的文件区用不同的URI来区分。

简单区分就是权限的差异:

源码区:不可读不可写,只能作为属性的值或方法的参数

初始化数据区:可读不可写,不能作为属性的值或方法的参数

数据区:可读可写,也可以作为属性的值或方法的参数

1. 源码区,source://

这个目录存储应用源文件,这个目录下所有文件以 source://为前缀。

在电脑上就是我们AppWorker项目中的source目录,包含ui,ui.js,js文件和其它任意资源文件。AppWorker开发的的App安装包里会包含这个目录,安装后会存储在手机里的系统目录下。但是不能在App运行时通过代码直接读写source下的文件的内容.

这个区的代码文件可以根据用户的选择来自动加密,加密可以参考文档

很多组件的属性和参数可以以source目录下的文件为参数。比如

//do_ImageView以source下的图片为源

var imageview = ui("imageview_id1");

imageview.source = "source://img/test.png";

有一种特殊的情况,可以在应用运行时操作source目录下的文件,就是利用do_App的update方法把data目录下的文件拷贝覆盖到source目录下,详细参考应用升级的文档

2. 数据区,data://

这个目录存储移动应用运行时的数据文件,可读可写这个目录下所有文件以 data://为前缀。

应用运行时可以通过do_Storage组件来访问和读写这个目录下的所有文件。

注意,这个目录在电脑里创建没有意义,它不会拷贝到手机端。这个目录下所有文件都必须在手机运行时才能读和写

//以do_Storage来读写文件内容

var storage = sm("do_Storage");

storage.readFile("data://test.txt",function(data){

    print(data);

});

还有一种用法是很多组件的属性和参数可以以data目录下的文件为参数,或者生成的临时文件保存在data目录下。比如

//do_ImageView以data下的图片为源

var imageview = ui("imageview_id1");

imageview.source = "data://img/test.png";

//do_Album选中照片后返回一个图片到data://目录下

var album = sm("do_Album");

album.select(1, "", "", "", function(d) {

    print(d);

    //d的值是data://temp/do_Album/radom_name.png

})

3. 初始化数据区,initdata://

这个目录是一个特殊的目录,新建一个项目会缺省生成这个目录,专门用来存放一些只读文件,存放一些程序启动后的初始化数据。

AppWorker开发的的App安装包里会包含这个目录,安装后会存储在手机里的存储目录下。应用运行时可以通过do_InitData组件来读这个目录下的文件的内容,但是不能写。

注意:只能读不能写

//以do_InitData来读文件内容

var initdata = sm("do_InitData");

initdata.readFile("initdata://test.txt",function(data){

    print(data);

});

还有一种用法是通过do_InitData组件的copy和unzip等方法把initdata下等文件复制到data目录下,然后就可以在data目录下读写了。

initdata:// 的文件不能作为属性的值和方法的参数(do_InitData组件除外)

上一篇下一篇

猜你喜欢

热点阅读