我正在使用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()。请帮助。
答案 0 :(得分:3)
编写代码的方式可能会误认为文件中仍有内容。移动你的:
globals.raiseLog("Content length after truncate-->"+writer.length);
进入你的onwriteend函数,因为写调用是异步的,在打印日志之前可能无法完成。