using the html5 filesystem api,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);

运行截图如下:

68f6ed874721d90cf12ebb3866da44a9.png

写入文件数据测试

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值