本地文件系统

首先要声明的是,这里的本地文件系统并不是客户端操作系统下的本地磁盘文件系统,而是Web应用程序在客户端创建和管理的一个与页面相关联的沙盒文件系统。

概述

本地文件系统(Local FileSystem)API是通过FileSystem对象和window.requestFileSystem()方法来实现的。

Web应用程序可以通过调用window.requestFileSystem()来请求对一个沙盒文件系统的访问权限。调用requestFileSystem()会创建一个新的沙盒存储空间。成功调用之后会返回一个FileSystem对象。

代码示例

请求文件系统

通过调用window.requestFileSystem()请求对沙盒文件系统的访问权限:

//浏览器的兼容性

window.requestFileSystem = window.requestFilsSystem || window.webkitRequestFileSystem;

window.requestFileSystem(type, size, successCallback, opt_errorCallback);

下面对调用requestFileSystem()时传递的参数作个简单的介绍:

* type \\ 文件存储是否持久。可为PERSISTENT,TEMPORARY。通过TEMPORARY存储的数据可由浏览器自行决定删除。要请求PERSISTENT存储,必须获得用户或应用的明确授权,并需要用户向应用授予配额。

* size \\存储空间大小(以字节为单位)。

* successCallback \\ 文件系统请求成功时调用的回调函数。其参数为FileSystem对象。

* opt_errorCallback \\ 用于处理错误或获取文件系统的请求遭到拒绝时可选的回调。其参数为FileError对象。

创建文件夹

fileSystem.root.getDirectory('Hudao', {create: true}, function(dirEntry) {

console.log('The directory'name is '+ dirEntry.name);

}, opt_errorCallback);

上面例子中,在根目录中创建一个文件夹。getDirectory()方法用来读和创建目录。该方法第一个参数可以传递一个名字或者路径来创建。

创建文件

fileSystem.root.getFile('hudao.txt', {create: true, exclusive: true}, function(fileEntry) {

console.log('The file's name is '+fileEntry.name);

}, opt_errorCallback);

上面例子中在根目录下创建一个空的文件hudao.txt。getFile()方法用来读和创建文件。

拷贝文件

function copy(currentDirec, srcEntry, destDir) {

currentDirec.getFile(srcEntry, {}, function(fileEntry) {

currentDirec.getDirectory(destDir, {}, function(dirEntry) {

fileEntry.copyTo(dirEntry);

}, errorHandler);

}, errorHandler);

}

copy(fileSystem.root, 'hudao.txt', 'Documents/');

上面的例子拷贝hudao.txt从ROOT到Document目录下。

移动文件

function move(currentDirec, srcEntry, directoyName) {

currentDirec.getFile(srcEntry, {}, function(fileEntry) {

currentDirec.getDirectory(directoryName, {}, function(dirEntry) {

fileEntry.moveTo(dirEntry);

}, errorHandler);

}, errorHandler);

}

move(fileSystem.root, 'hudao.txt', 'Documents/');

上面的例子是移动hudao.txt到Document的目录下。

重命名文件

function rename(currentDirec, srcEntry, newName) {

currentDirec.getFile(srcEntry, {}, function(fileEntry) {

fileEntry.moveTo(currentDirec, newName);

}, errorHandler);

}

rename(fileSystem.root, 'hudao.txt', 'hudaokeji.txt');

上面的例子是将hudao.txt重命名成hudaokeji.txt。

参考

html5 本地文件系统,本地文件系统 客户端存储 WebAPI编程 [HTML5知典]相关推荐

  1. java2048设计说明,Html5中的本地存储设计理念

    Web应用的发展,使得客户端存储使用得也越来越多,而实现客户端存储的方式则是多种多样.最简单而且兼容性最佳的方案是Cookie,但是作为真正的客户端存储,Cookie则存在很多致命伤.此外,在IE6及 ...

  2. html5本地数据库 没有用,【HTML5初探之本地存储】如果没有数据库。。。

    导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上)]看我canvas元素引领下 ...

  3. html5补充(本地存储·)

    HTML5语义化标签 HTML5新增的语义化标签主要有: article>.<section.<nav.<aside.<header.<footer.<tim ...

  4. HTML5中web本地存储

    1.1.1 什么是html5web本地存储(web存储)? html5web本地存储可以在本地存储用户的浏览数据.web本地存储相对cookie更加安全和快速,它的数据不会保存在服务器上.它也可以存储 ...

  5. html5保存资源本地,html5之Localstorage本地存储

    题外话 今天把博客里面的内容,同步在github的issues中了.具体地址是:https://github.com/confidence68/blog/issues ,欢迎大家访问,给star. L ...

  6. unity本地存储/客户端存储方式

    提到客户端存储,正常思维是json,text,sqllite Unity恰恰提供了一种简洁的原生本地存储,不用麻烦的封装及输入输出. Unity3D游戏数据存储在本地( unity3d 游戏本地存储玩 ...

  7. 分布式文件系统MFS(moosefs)实现存储共享(一)

    分布式文件系统MFS(moosefs)实现存储共享 作者:田逸([email]sery@163.com[/email]) from: [url]http://net.it168.com/a2009/0 ...

  8. [HTML5点滴]客户端存储那些事

    客户端存储 译者:文蔺 原文:http://www.html5rocks.com/en/tutorials/offline/storage/ 客户端存储 介绍 本文是关于客户端存储(client-si ...

  9. Ceph分布式文件系统及服务器远程存储的部署

    要求 1)Ceph分布式文件系统的平台要求:CentOS Linux 7: 2) Monitor节点要求:容忍单点故障,任何故障下保持一致性: 3) 数据节点要求:容忍单点故障,单点故障下无数据丢失: ...

最新文章

  1. 放弃 Notepad++,事实证明,还有 5 款更牛逼……
  2. Atutor、 Claroline、 Moddle及Sakai号称为四大开源课程管理系统
  3. 英伟达“暴力碾压”谷歌:53分钟训练完BERT,2.2毫秒完成推理,创下NLP三项新纪录...
  4. input image和img button区别
  5. 局域网查看计算机慢,局域网内的电脑访问共享文件夹速度很慢如何解决
  6. Java不兼容类型问题解决方案
  7. esp8266接收到的数据如何存放到数组中_Java中HashMap的实现原理
  8. Java 的单例模式
  9. 并查集——团伙(洛谷 P1892)
  10. 八.创建型设计模式——Singleton Pattern(单例模式)
  11. 【手写数字识别】基于matlab GUI SVM手写数字识别【含Matlab源码 676期】
  12. Axure使用图标字体
  13. ubuntu20.04 NVIDIA显卡驱动安装教程(Y9000p)
  14. 12款自动生成器,无聊人士自娱自乐专用
  15. SQL2005安装错误1706,安装程序找不到需要的文件。请检查……,SQL没有安装OWC11”解决方法...
  16. 华为P9移动定制版刷为联通移动双4G版本
  17. 数字取证wireshark流量分析
  18. 每日问答——PMP题库训练2
  19. java多个pdf合并为一个pdf,并通过feign下载
  20. Java学习---控制流程与方法

热门文章

  1. 大数据在职研究生哪个好_各种大数据在职研究生到底有什么不同之处
  2. jquery改变css样式和vue改变样式的区别
  3. 穿搭保暖记,显瘦还时髦
  4. org.apache.axis.client.Service调用服务webservice时报Unexpected wrapper element sayHello found. Expected
  5. 【机器学习中的数学基础】矩阵特征值、特征向量和特征值分解的几何意义
  6. Swal.fire使用
  7. Java这十年 - Java技术本纪 (3)
  8. matlab从无到有系列(七):GUI程序设计
  9. 复选框 遍历选中 php,jQuery的复选框选择并且获取值
  10. 如何取得Android手机的当前语言设置