博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTML5 FileSystem API 测试(一)
阅读量:7006 次
发布时间:2019-06-27

本文共 3423 字,大约阅读时间需要 11 分钟。

hot3.png

参考书 Using the HTML5 Filesystem API.pdf

用Chrome打开网站: www.baidu.com

打开其JavaScrip控制台,输入此js(以后称脚本一)查看当前本地存储使用状况:

window.webkitStorageInfo.queryUsageAndQuota(TEMPORARY, function(usage, quota) {  console.log('Using: ' + (usage / quota) * 100 + '% of temporary storage');}, function(e) {  console.log('Error', e);});

接着执行

var fileEn;function onFs(fs) {    fs.root.getFile('log.txt', {create: true, exclusive: true},        function(fileEntry) {            // fileEntry.isFile === true            // fileEntry.name == 'log.txt'            // fileEntry.fullPath == '/log.txt'            fileEn=fileEntry;            console.log('FileEntry Name: ' + fileEntry.name);            console.log('FileEntry FullPath: ' + fileEntry.fullPath);            //fileEntry.getMetaData(function(md) {            //    console.log(md.modificationTime.toDateString());            //}, onError);        },        onError    );}//FileError constantsfunction onError(err) {    var msg = 'Error: ';    switch (err.code) {        case FileError.NOT_FOUND_ERR:            msg += 'File or directory not found';            break;        case FileError.SECURITY_ERR:            msg += 'Insecure or disallowed operation';            break;        case FileError.ABORT_ERR:            msg += 'Operation aborted';            break;        case FileError.NOT_READABLE_ERR:            msg += 'File or directory not readable';            break;        case FileError.ENCODING_ERR:            msg += 'Invalid encoding';            break;        case FileError.NO_MODIFICATION_ALLOWED_ERR:            msg += 'Cannot modify file or directory';            break;        case FileError.INVALID_STATE_ERR:            msg += 'Invalid state';            break;        case FileError.SYNTAX_ERR:            msg += 'Invalid line-ending specifier';            break;        case FileError.INVALID_MODIFICATION_ERR:            msg += 'Invalid modification';            break;        case FileError.QUOTA_EXCEEDED_ERR:            msg += 'Storage quota exceeded';            break;        case FileError.TYPE_MISMATCH_ERR:            msg += 'Invalid filetype';            break;        case FileError.PATH_EXISTS_ERR:            msg += 'File or directory already exists at specified path';            break;        default:            msg += 'Unknown Error';            break;    };    console.log(msg);}window.webkitRequestFileSystem(TEMPORARY, 2*1024*1024 /*2MB*/, onFs, onError);

之后执行下列代码和
脚本一

console.dir(fileEn);

运行截图如下:

HTML5 Filesystem API

 

写入文件数据测试

var writeToFile=function(fileEntry) {    // Create a FileWriter object for our FileEntry.    fileEntry.createWriter(function(fileWriter) {      fileWriter.onwrite = function(e) {        console.log('Write completed.');      };      fileWriter.onerror = function(e) {        console.log('Write failed: ' + e.toString());      };      var bb = new WebKitBlobBuilder(); // Create a new Blob on-the-fly.      bb.append('Lorem Ipsum');      fileWriter.write(bb.getBlob('text/plain'));    }, onError);  }

输入
脚本一会发现占用的空间发生变化

 

读取文件

var reader;var readFromFile=function(fileEntry) {    // Obtain the File object representing the FileEntry.    // Use FileReader to read its contents.    fileEntry.file(function(file) {       reader = new FileReader();              reader.readAsText(file); // Read the file as plaintext.       console.log(reader.result);    }, onError);  }

执行查看reader对象情况

console.dir(reader)

转载于:https://my.oschina.net/u/559991/blog/60153

你可能感兴趣的文章
【面向对象设计基础】监视器
查看>>
ArrayList源码分析(基于JDK1.6)
查看>>
Android开发视频教学第一季(1-16集)视频&源码下载
查看>>
数据库压缩备份
查看>>
Ubuntu下安装 jdk6
查看>>
poj 1733(带权并查集+离散化)
查看>>
利用curl抓取远程页面内容
查看>>
Oracle中查询表字段基本信息、主键、外键(整理)
查看>>
grunt安装_
查看>>
RavenDb学习(一)设计模式介绍
查看>>
Android 2.3 不支持印度文
查看>>
SQL server 分页方法小结
查看>>
C#多线程应用:子线程更新主窗体控件的值(二)
查看>>
[LeetCode] Median of Two Sorted Arrays
查看>>
2000年互联网泡沫
查看>>
解决Tomcat 6.0 只支持 J2EE 1.2, 1.3, 1.4, and Java EE 5 Web modules
查看>>
C#模板引擎 DotLiquid
查看>>
libSVM介绍(二)
查看>>
Java Resource路径小结
查看>>
UITabBarController
查看>>