(1)HTML5 文件操作API

为了更好地理解 FileEntry,本部分还提供了执行常规任务的众多技巧。创建文件您可以使用文件系统的 getFile()DirectoryEntry 接口的一种方法)查找或创建文件。
请求文件系统后,系统会向成功回调传递FileSystem 对象,
其中包含指向该应用相应文件系统的根的 DirectoryEntry (fs.root)。
以下代码会在该应用相应文件系统的根中创建名为“log.txt”的空白文件:
  1. function onInitFs(fs) {  
  2.   
  3.   fs.root.getFile('log.txt', {create: true, exclusive: true}, function(fileEntry) {  
  4.   
  5.     // fileEntry.isFile === true  
  6.     // fileEntry.name == 'log.txt'  
  7.     // fileEntry.fullPath == '/log.txt'  
  8.   
  9.   }, errorHandler);  
  10.   
  11. }  
  12.   
  13. window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler); 
 
 
请求文件系统后,系统会向成功处理程序传递 FileSystem 对象。我们可以将回调中的 fs.root.getFile() 命名为要创建的文件的文件名。您可以传递绝对路径或相对路径,但该路径必须有效。
例如,如果您尝试创建一个其直接父级文件不存在的文件,
将会导致出错。getFile() 
的第二个参数是在文件不存在时从字面上说明函数行为的对象。
在此示例中,create: true 会在文件不存在时创建文件,
并在文件存在时 (exclusive: true) 引发错误。
如果 create: false,系统只会获取并返回文件。
无论是哪种情况,系统都不会覆盖文件内容,
因为我们只是获取相关文件的引用路径。
通过名称读取文件以下代码会检索名为“log.txt”的文件,
并使用 FileReader API 读取文件内容,
然后将其附加到页面上新的 <textarea>。如果 log.txt 不存在,系统将引发错误。
 
 
  1. function onInitFs(fs) {  
  2.   
  3.   fs.root.getFile('log.txt', {}, function(fileEntry) {  
  4.   
  5.     // Get a File object representing the file,  
  6.     // then use FileReader to read its contents.  
  7.     fileEntry.file(function(file) {  
  8.        var reader = new FileReader();  
  9.   
  10.        reader.onloadend = function(e) {  
  11.          var txtArea = document.createElement('textarea');  
  12.          txtArea.value = this.result;  
  13.          document.body.appendChild(txtArea);  
  14.        };  
  15.   
  16.        reader.readAsText(file);  
  17.     }, errorHandler);  
  18.   
  19.   }, errorHandler);  
  20.   
  21. }  
  22.   
  23. window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);  
 
 
写入到文件以下代码会创建名为“log.txt”的空白文件(如果该文件不存在),并在文件中填入“Lorem Ipsum”文字。
 
 
  1. function onInitFs(fs) {  
  2.   
  3.   fs.root.getFile('log.txt', {create: true}, function(fileEntry) {  
  4.   
  5.     // Create a FileWriter object for our FileEntry (log.txt).  
  6.     fileEntry.createWriter(function(fileWriter) {  
  7.   
  8.       fileWriter.onwriteend = function(e) {  
  9.         console.log('Write completed.');  
  10.       };  
  11.   
  12.       fileWriter.onerror = function(e) {  
  13.         console.log('Write failed: ' + e.toString());  
  14.       };  
  15.   
  16.       // Create a new Blob and write it to log.txt.  
  17.       var bb = new BlobBuilder(); // Note: window.WebKitBlobBuilder in Chrome 12.  
  18.       bb.append('Lorem Ipsum');  
  19.       fileWriter.write(bb.getBlob('text/plain'));  
  20.   
  21.     }, errorHandler);  
  22.   
  23.   }, errorHandler);  
  24.   
  25. }  
  26.   
  27. window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler); 
 

转载于:https://www.cnblogs.com/zhaoq/p/5060926.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值