如何删除phonegap中的文本文件内容?

Nee*_*rma 4 cordova

你能告诉我如何删除phonegap中的文本文件的争议吗?我有文本文件,上面有一些文字.我想在插入新文本之前删除该文本.这可能在phonegap中吗?我能够读取,写入,删除文件.但是如何删除文件的争议?

Leo*_*Leo 5

你可以使用Truncate.

如果你之后要写,那会更复杂一些.你不能只是

writer.truncate(0);
writer.write("Leo was here");
Run Code Online (Sandbox Code Playgroud)

如果你这样做似乎既不起作用,但每个人都单独工作.因此,为了使其工作,您必须等到截断完成后才能执行写操作.在截断的onwriteend中添加写入.注意清除或更改onwwriteend很重要,否则你将获得无限循环.

因此,首先获取文件系统并使用文件系统来获取文件条目

function clearFile(fileName){
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){
                         fileSystem.root.getFile(fileName, { create: false }, clearfileExists, fileDoesNotExist);
                         }, getFSFail); 
}
Run Code Online (Sandbox Code Playgroud)

假设您有一个文件条目(文件存在),然后创建文件编写器.

function clearfileExists(fileEntry){
    console.log("File " + fileEntry.fullPath + " exists!");
    fileEntry.createWriter(truncateFile, fileDoesNotExist);
}
Run Code Online (Sandbox Code Playgroud)

现在你有了一个文件编写器.调用truncate(0)并在onwriteend中清除onwrite结束并写下你想要的内容.

function truncateFile(writer){
    console.log("truncate");
    writer.onwriteend= function(evt) {
        LOG("write");
        writer.seek(0);
        writer.onwriteend = function(evt){
            console.log("contents of file now 'Leo was Here'");
        }
        writer.write("Leo was Here");
    }
    writer.truncate(0);
}
Run Code Online (Sandbox Code Playgroud)

并且为了完整性,这里是错误案例的处理

function fileDoesNotExist(){
    console.log("file does not exist");
}
function getFSFail(evt) {
    console.log(evt.target.error.code);
}
Run Code Online (Sandbox Code Playgroud)