HTML5+ - DirectoryEntry(文件夹及文件操作)

时间:2019-08-02 发布者: 访问量:4229

关于RelativeURL 相对路径URL

说明:只能在扩展API中使用,相对于基座提供的特定目录,以“_”开头。

常量:

"_www": (DOMString 类型 )应用资源目录

保存应用的所有html、css、js等资源文件,与文件系统中根目录PRIVATE_WWW一致,后面加相对路径如“_www/res/icon.png”。
注意:应用资源目录是只读目录,只能读取次目录下的文件,不能修改或新建。

"_doc": (DOMString 类型 )应用私有文档目录

用于保存应用运行期业务逻辑数据,与文件系统中根目录PRIVATE_DOCUMENTS,如“_doc/userdata.xml”。

"_documents": (DOMString 类型 )程序公用文档目录

用于保存程序中各应用间可共享文件的目录,与文件系统中根目录PUBLIC_DOCUMENTS,如“_document/share.doc”。

"_downloads": (DOMString 类型 )程序公用下载目录

用于保存程序下载文件的目录,与文件系统中根目录PUBLIC_DOWNLOADS,如“_download/mydoc.doc”。


1、属性篇

说明:目录或文件的操作以获取对应的对象为前提,使用的方法是:resolveLocalFileSystemURL(上一节教程有详细讲解)。

1.1、isFile: 操作对象的是否为文件,DirectoryEntry对象固定其值为false

plus.io.resolveLocalFileSystemURL( '_www/test.txt', function(entry){ 
if(entry.isFile){ mui.toast('是一个文件'); }else{ mui.toast('不是文件'); } 
}, function(e){ mui.toast(e.message); } );


1.2、isDirectory: 操作对象是否为目录,DirectoryEntry对象固定其值为true

plus.io.resolveLocalFileSystemURL( '_www/', function(entry){
 if(entry.isDirectory){ mui.toast('是一个文件夹'); }else{ mui.toast('不是文件夹'); 
} }, function(e){ mui.toast(e.message); } );


1.3、name: 目录操作对象的名称,不包括路径

plus.io.resolveLocalFileSystemURL( '_www/', function(entry){ mui.toast(entry.name); }, 
function(e){ mui.toast(e.message); } );


1.4、fullPath: 目录操作对象的完整路径,文件系统的绝对路径

plus.io.resolveLocalFileSystemURL( '_www/', function(entry){ mui.toast(entry.fullPath); },
 function(e){ mui.toast(e.message); } );


2、常用方法篇
2.1 创建或打开子目录getDirectory

entry.getDirectory( path, flag, succesCB, errorCB );

说明:创建或打开当前目录指定的目录。 创建或打开目录操作成功通过succesCB回调返回,失败则通过errorCB返回。

参数:

path: ( DOMString ) 必选 要操作目录相对于当前目录的地址

flag: ( Flags ) 可选 要操作文件或目录的参数

succesCB: ( EntrySuccessCallback ) 可选 创建或打开目录成功的回调函数

errorCB: ( FileErrorCallback ) 可选 创建或打开目录失败的回调函数

返回值:void : 无

平台支持:Android - 2.2+ (支持) iOS - 4.3+ (支持)

plus.io.resolveLocalFileSystemURL( '_documents', function(entry){ 
entry.getDirectory('mytest', {create:true,exclusive:false},function(entry1){
 mui.toast('创建或打开成功'); },function(){ mui.toast('创建或者打开子目录失败');
 }) }, function(e){mui.toast('获取io操作对象失败');} )


2.2、删除目录entry.remove( succesCB, errorCB );
以下情况删除目录将会导致失败: 目录中存在文件; 删除根目录; 删除目录成功通过succesCB回调返回,失败则通过errorCB返回。

plus.io.resolveLocalFileSystemURL( '_documents/mytest', function(entry){
 entry.remove(function(){ mui.toast('删除成功'); }); }, 
function(e){mui.toast('获取io操作对象失败');} ) 


2.3 创建或打开文件并获取内容 
getFile()参数:

path: ( DOMString ) 必选 要操作文件相对于当前目录的地址

flag: ( Flags ) 可选 要操作文件或目录的参数

succesCB: ( EntrySuccessCallback ) 可选 创建或打开文件成功的回调函数

errorCB: ( FileErrorCallback ) 可选 创建或打开文件失败的回调函数

plus.io.resolveLocalFileSystemURL( '_www', function(entry){ 
entry.getFile('1.txt',{create:true,exclusive:false}, function(file){ 
//创建文件读取对象 var fileReader = new plus.io.FileReader();
 fileReader.readAsText(file, 'utf-8'); 
fileReader.onloadend = function(evt) {
 mui.alert(evt.target.result); } }, function(e){
 mui.toast('打开文件失败'); } ); }, function(e){mui.toast('打开文件夹_www失败');} );


2.4 FileWriter向文件写入内容

plus.io.resolveLocalFileSystemURL( '_documents', function(entry){ 
entry.getFile('2.txt',{create:true,exclusive:false}, function(file){
 file.createWriter(function(writer){ writer.write('hi...'); mui.toast('写入成功'); },
function(){ mui.toast('写入失败'); }); }, function(e){ mui.toast('打开文件失败'); } ); },
 function(e){mui.toast('打开文件夹_www失败');} );

发布于
  用户评论
    生活编程