Phonegap文件编写器无法正常工作,无法截断文件内容

时间:2012-10-19 13:36:53

标签: html5 cordova jquery-mobile

我正在使用phonegap文件读取功能,一旦我阅读了内容,我将对该内容执行一些功能,一旦我调用文件截断功能。在那我不能截断任何价值。帮我解决这个问题。

removeFileContent();

function removeFileContent(){
    console.log("Inside remove file content");
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileTruncate, onProcessFailure);
};

function gotFileTruncate(fileSystem){
    console.log("Inside get file path for remove content");
    /** Function to get file path */
    filePath = getFilePath(device.platform);
    console.log("Device File Path to remove content-->"+this.filePath);
    fileSystem.root.getFile(filePath, null, gotFileEntryTruncate, onProcessFailure);
}

function gotFileEntryTruncate(fileEntry){
    globals.raiseLog("Inside file to truncate call");
    globals.raiseLog("File Name-->"+fileEntry.name);
    fileEntry.createWriter(gotFileWriter, onProcessFailure);
}

function gotFileWriter(writer){
    globals.raiseLog("Inside file writer to truncate file content");
    globals.raiseLog("Content length-->"+writer.length);
    //writer.truncate(10);
    writer.onwriteend = function(evt) {
        writer.truncate(0);
        writer.onwriteend = function(evt) {
        };
    };
    writer.write("");
    globals.raiseLog("Content length after truncate-->"+writer.length);
}

在上面的gotFileWriter()中,如果我检查writer.length,它仍会显示一些计数。我不知道为什么我们可以检查文件是否为空。我在该文件中有一些文本。完成文件读取后需要清除文件。我完成阅读功能后调用removeFileContent()。请帮助。

1 个答案:

答案 0 :(得分:3)

编写代码的方式可能会误认为文件中仍有内容。移动你的:

globals.raiseLog("Content length after truncate-->"+writer.length);

进入你的onwriteend函数,因为写调用是异步的,在打印日志之前可能无法完成。