您能否告诉我如何删除phonegap中的文本文件? 我有文本文件,上面有一些文字。我想在插入新文本之前删除该文本。这可能在phonegap中吗? 我能够读取,写入,删除文件。但是如何删除文件的争议?
答案 0 :(得分:5)
您可以使用截断。
如果你之后要写,那会稍微复杂一些。你不能只是
writer.truncate(0);
writer.write("Leo was here");
如果你这样做似乎既不起作用,但每个人都单独工作。因此,为了使其工作,您必须等到截断完成后才能执行写操作。在截断的onwriteend中添加写入。注意清除或更改onwwriteend非常重要,否则你将获得无限循环。
首先获取文件系统并使用文件系统获取文件条目
function clearFile(fileName){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){
fileSystem.root.getFile(fileName, { create: false }, clearfileExists, fileDoesNotExist);
}, getFSFail);
}
假设您有一个文件条目(文件存在),那么创建文件编写器。
function clearfileExists(fileEntry){
console.log("File " + fileEntry.fullPath + " exists!");
fileEntry.createWriter(truncateFile, fileDoesNotExist);
}
现在你有了一个文件编写器。调用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);
}
并且为了完整性,这里是错误案例的处理
function fileDoesNotExist(){
console.log("file does not exist");
}
function getFSFail(evt) {
console.log(evt.target.error.code);
}
答案 1 :(得分:0)
您可以使用truncate方法将所有内容删除到一定数量,或者如果您要删除所有内容,则可以随时删除该文件并创建新的空版本。
function win(writer) {
writer.truncate(0);
};
var fail = function(evt) {
console.log(error.code);
};
file.createWriter(win, fail);
答案 2 :(得分:0)
Cordova File Plugin
可以得到cumbersome
。在此GIST
中,我借助file operations
将Promises
分解为多个部分,并能够实现以下operations
:这是它的样子:
get a file
(如果已经存在)。save the fileWriter
read from the file
并将数据存储在内存中remove the file
和已保存的(内存中)fileWriter参考。create a new file
具有相同的名称。update the content
与saved content
+ new content
write
将此内容添加到file
摘录自gist:
var fileName = 'test-450.json';
var fileData;
var savedFileEntry = {};
promise_getPersistentDirectoryEntry()
.then(promise_fileEntry.bind(null, fileName, { create:false }))
.then(save_fileEntry)
.then(promise_file)
.then(promise_fileContent)
.then(save_fileData)
.then(remove_fileEntry)
.then(promise_getPersistentDirectoryEntry)
.then(promise_fileEntry.bind(null, fileName, {create:true}))
.then(promise_fileWriter)
.then(edit_content)
.then(promise_writeContent)
.then(promise_getPersistentDirectoryEntry)
.then(promise_fileEntry.bind(null, fileName, {create:false}))
.then(promise_file)
.then(promise_fileContent)
.then(res => {
logit('JSON.parse(res.target.result)', JSON.parse(res.target.result));
// logit('savedFileEntry', savedFileEntry);
logit('fileData', fileData);
})
.catch(err => logit('err', err));
祝你好运...