• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
樱花落在指尖上
博客园    首页    新随笔    联系   管理    订阅  订阅
(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); 
 
posted on 2015-12-20 15:04  樱花落在指尖上  阅读(427)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3