如果找到,DirectoryEntry的getFile方法是否可以删除现有文件?

时间:2016-03-16 14:54:41

标签: javascript android cordova

我目前正在创建代码类似于以下内容的文本文件。这将创建一个文件,但它不会删除现有文件。

fs.root.getFile('log.txt', {create: true, exclusive: false},
   function(fileentry) {
      fileentry.createWriter(function (filewriter) {
         filewriter.write('Hello world!');
      });
   }
);

如果没有太多额外代码或专用删除代码,是否可以干净地删除现有文件?

我一直在使用本指南,但没有找到有效的方法来做到这一点。

http://www.html5rocks.com/en/tutorials/file/filesystem/

2 个答案:

答案 0 :(得分:0)

这是我能得到的尽可能接近。它检查文件,如果它存在则删除。如果无法删除错误,它还会捕获错误。如果到目前为止,新文件有空间,则会像以前一样创建它。

fs.root.getFile('log.txt', {create: false},
   function(fileentry) {
      fileentry.remove(createfile, errorhandler);
   },
   createfile
);

function createfile(){
   //either the file was never there or has been removed successfully

   fs.root.getFile('log.txt', {create: true, exclusive: false},
      function(fileentry) {
         fileentry.createWriter(function (filewriter) {
            filewriter.write('Hello world!');
         });
      }
   );
}

function errorhandler(error){
   //file already exists and couldn't be removed
}

它不像我喜欢的那样紧凑,也不像漂亮,但它是我现在能想到的最好的。

答案 1 :(得分:-1)

这应该像你的作家那样工作:

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

    fileEntry.remove(function() {
      console.log('File deleted.');
    }, errorHandler);

  }, errorHandler);