3

下面是函数:如何覆盖文件中文件系统API

this.saveObj = function(o, finished) 
{ 
    root.getDirectory("object", {create: true}, function(directoryEntry) 
    { 
     directoryEntry.getFile("object.json", {create: true}, function(fileEntry) 
     { 
      fileEntry.createWriter(function(fileWriter) 
      { 

       fileWriter.onwriteend = function(e) 
       { 
        finished(fileEntry); 
       }; 

       fileWriter.onerror = errorHandler; 
       var blob = new Blob([JSON.stringify(o)], {type: "json"}); 

       fileWriter.write(blob); 
      }, errorHandler); 
     }, errorHandler); 
    }, errorHandler); 
}; 

现在,当我保存对象的一切工作正常。让我说我保存{"id":1}我的文件内容将是{"id":1}。现在我用o = {};编辑对象并再次保存,我的文件内容突然变为{} "id":1 }

它只是覆盖旧的内容,但不会清除它。在写入文件之前我是否必须删除该文件,或者是否有我丢失的内容?

回答

1

就我所知,写入方法会将提供的内容写入某个位置。对我而言,这意味着除非您覆盖零件,否则现有内容不会被触及。所以我会说是,删除文件并保存一个新文件。

source