HTML5 本地文件操作之FileSystemAPI整理(一)

摘要:
name属性用于标识此根目录的名称,与LocalFileSystem中的文件系统类型一一对应。errorCB:可选移动文件失败的回调函数3.entry.copyTo;拷贝文件4.DOMStringentry.toURL();获取文件路径转换为URL地址,返回‘filesytem:http://’格式5.DOMStringentry.toLocalURL();:获取文件路径转换为本地路径URL地址,测试时没有该方法6.DOMStringentry.toRemoteURL();获取文件路径转换为网络路径URL地址,测试时没有该方法。0表示文件的起始位置。测试时不可用更多:HTML5本地文件操作之FileSystemAPI简介

一、请求配额

DeprecatedStorageInfo对象

window.webkitStorageInfo:当使用持久存储模式时需要用到该对象的接口

方法:

1.requestQuota(type,size,successCB,errorCB);请求配额

2.queryUsageAndQuota();获取配额信息

HTML5 本地文件操作之FileSystemAPI整理(一)第1张

window.requestFileSystem(window.PERSISTENT, gratedBytes, initFs, errorHandler);

DOMFileSystem对象

文件系统对象,用于管理特定本地文件目录

说明:文件系统对象表示一个应用可访问的根目录。name属性用于标识此根目录的名称,与LocalFileSystem中的文件系统类型一一对应。root属性为文件目录对象,用于实际操作文件系统,参考DirectoryEntry。

属性:

1.name:当前沙盒系统名称,协议、域名、端口+操作类型

2.root:当前沙盒系统的根目录对象DirectoryEntry

HTML5 本地文件操作之FileSystemAPI整理(一)第2张

二、文件操作

1.FileEntry

属性:

1.name:文件名称,包括扩展名

2.fullPath:相对沙盒根目录的全名称

3.isFile:是否是文件,FileEntry对象固定为true

4.isDirectory:是否是文件夹,FileEntry对象固定为false

5.filesystem:当前fs(FileSystem对象)的引用

HTML5 本地文件操作之FileSystemAPI整理(一)第3张

方法:

fileEntry.getMetadata(successCallback, opt_errorCallback);  
fileEntry.remove(successCallback, opt_errorCallback);  
fileEntry.moveTo(dirEntry, opt_newName, opt_successCallback, opt_errorCallback);  
fileEntry.copyTo(dirEntry, opt_newName, opt_successCallback, opt_errorCallback);  
fileEntry.getParent(successCallback, opt_errorCallback);  
fileEntry.toURL(opt_mimeType);  
fileEntry.file(successCallback, opt_errorCallback);  
fileEntry.createWriter(successCallback, opt_errorCallback);  

1.entry.getMetadata( successCB, errorCB ),获取文件信息

MetadataSuccessCallback

获取文件或目录状态信息成功的回调函数,获取文件信息成功返回Metadata对象,详细参考见下面。

voidonSuccess( metadata ) {
//Metadata code.
}

2. entry.moveTo( parent, newName, succesCB, errorCB ); 移动文件

说明:以下情况移动目录将会导致失败: 要移动到的目标目录无效; 要移动到的目标路径被其它文件占用; 移动文件成功通过succesCB回调返回,失败则通过errorCB返回。

参数:

parent: ( DirectoryEntry ) 必选 要移动到的目标目录

newName: ( DOMString ) 可选 移动后的文件名称,默认为原始文件名称

succesCB: ( EntrySuccessCallback ) 可选 移动文件成功的回调函数

回调函数中的参数保存新的文件对象。

errorCB: ( FileErrorCallback ) 可选 移动文件失败的回调函数

3. entry.copyTo( parent, newName, succesCB, errorCB );拷贝文件

4. DOMString entry.toURL();获取文件路径转换为URL地址,返回‘filesytem:http://’格式

5.DOMString entry.toLocalURL();: 获取文件路径转换为本地路径URL地址,测试时没有该方法

6.DOMString entry.toRemoteURL();获取文件路径转换为网络路径URL地址,测试时没有该方法。

7.entry.remove( succesCB, errorCB ); 删除文件

8. entry.getParent( succesCB, errorCB );获取文件所属的父目录

9. entry.createWriter( succesCB, errorCB );获取文件关联的写文件操作对象FileWriter,在FileWriterSuccessCallback 参数中返回

10. entry.file( succesCB, errorCB );获取文件数据对象,在FileSuccessCallback 参数总获取

11.

2.FileWriter对象

属性:

1.readyState:当前文件读取写入状态,常量值如下:

  • INIT: 值为0,写文件初始化状态
  • WRITING: 值为1,正在写入文件状态
  • DONE: 值为2,写文件操作完成状态

2.position:当前操作指针位置

3.length:当前写入文件的长度,字节数

4.error:异常

方法:

1.seek(number):将写入流,指针移动到指定位置,说明:定位文件的操作位置,有效值为0到文件的总长度减1。 0表示文件的起始位置。

2.abort():终止写入,说明:写入文件数据操作开始后,可通过此方法取消写入文件数据操作。调用此方法后将触发文件写入对象的onabort事件。

3.truncate(number):按照指定长度截断文件。

4.write(data):从文件当前定位的位置开始,写入数据到文件中。 如果文件中已经存在数据,新写入的数据将覆盖已有数据

data:File对象,Blob对象,DOMString类型。

5.

事件:

  • onwritestart: 写入文件开始时的回调函数
  • onprogress: 写入文件过程中的回调函数
  • onwrite: 写入文件成功完成的回调函数
  • onabort: 取消写入文件时的回调函数
  • onerror: 文件写入操作失败时调用的回调函数
  • onwriteend: 文件写入操作完成时的回调函数

HTML5 本地文件操作之FileSystemAPI整理(一)第4张

3.FileReader对象,参考:http://www.cnblogs.com/tianma3798/p/5836484.html

三、参数对象

Metadata

JSON对象,保存文件或目录的状态信息对象

说明:可通过DirectoryEntry或FileEntry对象的getMetaData方法获取

属性:

modificationTime: (Date 类型 )文件或目录的最后修改时间

size: (Number 类型 )文件的大小,若获取的是目录对象的属性则值为0。

directoryCount: (Number 类型 )包含的子目录数,若自身是文件则其值为0。测试时不可用

fileCount: (Number 类型 )目录的文件数,若自身是文件则其值为0。测试时不可用

HTML5 本地文件操作之FileSystemAPI整理(一)第5张

更多:

HTML5 本地文件操作之FileSystemAPI简介

免责声明:文章转载自《HTML5 本地文件操作之FileSystemAPI整理(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇「性能提升」扩展 Spring Cache 支持多级缓存Flask入门之触发器,事件,数据迁移下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Subversion命令汇总

全局选项: --username ARG   指定用户名称 ARG --password ARG   指定密码 ARG --no-auth-cache   不要缓存用户认证令牌 --non-interactive   不要交互提示 --trust-server-cert   不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项“--...

linux内核之文件系统

本文主要是基于百度文库的《Linux2.4.30内核文件系统学习(多图).doc》和360doc的《Linux内核虚拟文件系统》修改而来,当然还参考了其他的一些文档,在此就不一一列出了。本来在看到这些文章后,都没有勇气再写点文件系统方面的东西了,这些文章实在太精彩了。最后还是鼓足勇气决定把整理的资料增加了一点自己的理解写下来,主要目的是让各位高手看看我的理...

[C] c99int(让VC等编译器自动兼容C99的整数类型)V1.02。源码托管到github、添加CMake编译配置文件、使用doxygen规范注释

新版本—— http://www.cnblogs.com/zyl910/p/zlstdint_v100.html[C] zlstdint(让VC、TC等编译器自动兼容C99的整数类型)V1.0。支持Turbo C++ 3等DOS下的编译器 作者:zyl910 一、改动简介   V1.02版的改动如下—— 将源码上传到github. 调整目录结构. 添加C...

Oracle-数据泵使用

转至:https://www.cnblogs.com/chinas/p/8300955.html#_label0 阅读目录  一、为何选择数据泵方式 二、准备工作 1、目标新库上的操作 2、创建数据备份目录(源库和目标库) 三、导入导出 1、expdp导出 2、impdp导入 四、参数说明 1、expdb (1)关键字及其说明 (2)命令及...

软件的增量更新

软件的增量更新 因为转战C#了,之前很多东西都丢了。现在从头开始弄基础服务,首先第一个就是客户端的自动更新。之前简单搜了一下相关功能的实现。有一个文章我没有看懂,另一片文章里边说的应该是提交本地数据,然后计算差异化包,让服务器返回差异化数据包。当然这样不是不行。肯定是可行的,但是对于服务器来说这部分工作可能就有点麻烦了。因为你得让服务器有这个计算能力。参考...

Laravel--文件管理及上传自定义目录及文件名

laravel 上传 php 需要开启 fileinfo 扩展 先看一个例子: $file = $request->file('shopimg'); $path = $file->store('public/avatars'); echo $path; //给storage...