应用程序重启后附加到文件 - Phonegap

时间:2012-05-04 12:28:11

标签: javascript file-io cordova

在phonegap中有一种方法可以在应用程序启动时创建文件的长度并创建编写器,以便您可以将writer.seek()添加到该位置并附加到该文件。它当前在应用程序运行时附加,但每次应用程序重新启动时都会写入文件。下面是我作家的代码。作者是全球创造的。

我正在使用在Android 2.3.3上运行的phonegap 1.2.0

var writer = new FileWriter("mnt/sdcard/mydocs/text.txt");


function appendFile(text) {
  try{
    writer.onwrite = appendSuccess;
    writer.onerror = appendFail;
    writer.seek(writer.length);
    writer.write(text);
    }catch(e){
      alert(e);
      }
}

function appendSuccess() {
    alert("Write successful");
  }

  function appendFail(evt) {
    alert("Failed to write to file");
    }
  }

1 个答案:

答案 0 :(得分:2)

是的,这是一个错误。在PhoneGap的最新版本中,它是固定的。但是,我们不再支持:

new FileWriter(pathToFile);

现在你需要这样做:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(FS) {
    FS.root.getFile("empty.txt", {"create":true, "exclusive":false}, 
        function(fileEntry) {
            fileEntry.createWriter(
                 function(writer) {
                    console.log("Length = " + writer.length);
                    console.log("Position = " + writer.position);
                    writer.seek(writer.length);
                    console.log("Position = " + writer.position);
                 }, fail);
        }, fail);
}, fail);

对不正确的第一个回答感到抱歉。显然,您无法将FileEntry传递给FileWriter构造函数,您需要传递File,这是通过调用FileEntry.file()方法获得的。

喜欢这个令人费解的W3C规范。