这个视频我们来看一下怎么样去请求一个文件系统。先打开在演示文档里嵌入的 script.js 这个脚本文件 … 首先我们得解决一下浏览器的兼容问题 … 目录实施 filesystem 的浏览器还比较少,只有 Chrome ,Opera ,还有 Blackberry 浏览器 … 它们都是 webkit 核心的浏览器 ..
在使用 requestFileSystem 方法请求文件系统的时候,可能需要在它前面加上一个 webkit 前缀 .. 所以我们可以先这样 …
/* 浏览器兼容 */
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;
如果浏览器的 window 对象里有 requestFileSystem 方法就去使用这个方法,没有的话,如果有前面带 webkit 前缀的 requestFileSystem 方法也可以 …
这里的两条竖线这个操作符,表示 或 …
在下面,我们再去正式请求一个本地的文件系统 …
/* 请求本地文件系统*/
window.requestFileSystem(PERSISTENT, 1024 * 1024, onSuccess, onError);
PERSISTENT ,表示我们需要一个永久的文件系统来存储数据 … 1024 * 1024 是文件系统的尺寸 … 1024 字节是 1KB,1024KB 是 1MB …
onSuccess 是请求成功以后做的事情 … onError 是失败的时候要做的事 … 在上面,我们再去定义这两个函数 …
onError
/* 处理错误信息 */
function onError(error) {
console.log('错误信息:' + error.name + ' ' + error.message);
}
在出错的时候,把错误的信息输出到控制台上 …
onSuccess
下面我们再定义一个 onSuccess() ,请求成功以后要做的事情 …
/* 文件系统 */
function onSuccess(fileSystem) {
console.log(fileSystem);
}
请求成功以后,会返回一个 FileSystem 对象,我们可以把它作为一个参数传递给 onSuccess() 这个函数 … 在这个函数里,我们把 FileSystem 这个对象输出到控制台上看一下 …
保存一下,回到浏览器 … 我们需要使用一个支持本地文件系统的浏览器。这里我用的是 Chrome 浏览器 … 打开控制台 …
这里,会显示表示文件系统的 FileSystem 对象 … 它有两个属性 … name ,是文件系统的名称 … 这里就是 http_localhost_0:Persistent … 表示这是在 localhost 这个域名下面的一个永久的文件系统 …
另外,文件系统对象还有一个 root 属性 … 它其实是文件系统的根目录 … DirectoryEntry 在本地文件系统里就表示目录的意思,也就是存储文件或者其它目录的那个文件夹 …
这个属性的下面还有一些属性 … fullPath ,表示目录的路径 … 一个 / ,表示根目录 … isDirectory ,是否是目录,它的值是 true,表示 root 是一个目录 … isFile 的意思就是,是否是文件 … root 是一个目录不是文件,所以它的值是 false ….