HTML5 FileSystem API 测试(一)

参考书 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 constants
function 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值