您的位置:首页 > Web前端 > HTML5

(1)HTML5 文件操作API

2015-12-20 15:04 537 查看
为了更好地理解
FileEntry
,本部分还提供了执行常规任务的众多技巧。创建文件您可以使用文件系统的[code]getFile()(DirectoryEntry接口的一种方法)查找或创建文件。
请求文件系统后,系统会向成功回调传递
FileSystem
对象,
其中包含指向该应用相应文件系统的根的
DirectoryEntry
(
fs.root
)。
以下代码会在该应用相应文件系统的根中创建名为“log.txt”的空白文件:
[/code]

functiononInitFs(fs){

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

//fileEntry.isFile===true

//fileEntry.name=='log.txt'

//fileEntry.fullPath=='/log.txt'

},errorHandler);

}

window.requestFileSystem(window.TEMPORARY,1024*1024,onInitFs,errorHandler);


请求文件系统后,系统会向成功处理程序传递
FileSystem
对象。我们可以将回调中的[code]fs.root.getFile()命名为要创建的文件的文件名。您可以传递绝对路径或相对路径,但该路径必须有效。
例如,如果您尝试创建一个其直接父级文件不存在的文件,[/code]
将会导致出错。
getFile()

的第二个参数是在文件不存在时从字面上说明函数行为的对象。
在此示例中,[code]create:true会在文件不存在时创建文件,
并在文件存在时(
exclusive:true
)引发错误。
如果
create:false
,系统只会获取并返回文件。
无论是哪种情况,系统都不会覆盖文件内容,
因为我们只是获取相关文件的引用路径。
通过名称读取文件以下代码会检索名为“log.txt”的文件,
并使用
FileReader
API读取文件内容,
然后将其附加到页面上新的<textarea>。如果log.txt不存在,系统将引发错误。[/code]


functiononInitFs(fs){

fs.root.getFile('log.txt',{},function(fileEntry){

//GetaFileobjectrepresentingthefile,

//thenuseFileReadertoreaditscontents.

fileEntry.file(function(file){

varreader=newFileReader();

reader.onloadend=function(e){

vartxtArea=document.createElement('textarea');

txtArea.value=this.result;

document.body.appendChild(txtArea);

};

reader.readAsText(file);

},errorHandler);

},errorHandler);

}

window.requestFileSystem(window.TEMPORARY,1024*1024,onInitFs,errorHandler);


写入到文件以下代码会创建名为“log.txt”的空白文件(如果该文件不存在),并在文件中填入“LoremIpsum”文字。


functiononInitFs(fs){

fs.root.getFile('log.txt',{create:true},function(fileEntry){

//CreateaFileWriterobjectforourFileEntry(log.txt).

fileEntry.createWriter(function(fileWriter){

fileWriter.onwriteend=function(e){

console.log('Writecompleted.');

};

fileWriter.onerror=function(e){

console.log('Writefailed:'+e.toString());

};

//CreateanewBlobandwriteittolog.txt.

varbb=newBlobBuilder();//Note:window.WebKitBlobBuilderinChrome12.

bb.append('LoremIpsum');

fileWriter.write(bb.getBlob('text/plain'));

},errorHandler);

},errorHandler);

}

window.requestFileSystem(window.TEMPORARY,1024*1024,onInitFs,errorHandler);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: