如何使用文件系统 API 重命名 Chrome 应用程序中的文件?
How to rename a file in a Chrome App with the Filesystem API?
我在我的 Chrome 应用程序中使用 Chrome 文件系统,我想重命名一个本地文件。我知道如何写一个新文件,方法是:
chrome.fileSystem.getWritableEntry(print_location, function(entry) {
entry.getFile('file1.txt', {create:true}, function(entry) {
entry.createWriter(function(writer) {
writer.write(new Blob(['Lorem'], {type: 'text/plain'}));
});
});
});
哪个有效,但是给定一个已经存在的文件,我该如何重命名它(覆盖)?或者如何删除文件、复制文件或移动文件?这不可能吗?
更新:
根据 Daniel Herr 的解释,它与 HTML 文件系统 api 共享,我生成了以下代码,解决了我的问题。
function rename_file(file_location, file_old_name, file_new_name){
chrome.fileSystem.getWritableEntry(file_location, function(entry) {
entry.getFile(file_old_name, {create:false}, function(entry) {
entry.moveTo(file_location, file_new_name,
function(){console.log("success");},
function(){
console.log("fail");
});
});
});
}
如果文件位于您有权访问的文件夹中,您可以使用 entry.moveTo 方法重命名它。
fileentry.getParent(function(parent) {
fileentry.moveTo(parent, "newname")
})
https://developer.mozilla.org/en-US/docs/Web/API/Entry#moveTo
我在我的 Chrome 应用程序中使用 Chrome 文件系统,我想重命名一个本地文件。我知道如何写一个新文件,方法是:
chrome.fileSystem.getWritableEntry(print_location, function(entry) {
entry.getFile('file1.txt', {create:true}, function(entry) {
entry.createWriter(function(writer) {
writer.write(new Blob(['Lorem'], {type: 'text/plain'}));
});
});
});
哪个有效,但是给定一个已经存在的文件,我该如何重命名它(覆盖)?或者如何删除文件、复制文件或移动文件?这不可能吗?
更新:
根据 Daniel Herr 的解释,它与 HTML 文件系统 api 共享,我生成了以下代码,解决了我的问题。
function rename_file(file_location, file_old_name, file_new_name){
chrome.fileSystem.getWritableEntry(file_location, function(entry) {
entry.getFile(file_old_name, {create:false}, function(entry) {
entry.moveTo(file_location, file_new_name,
function(){console.log("success");},
function(){
console.log("fail");
});
});
});
}
如果文件位于您有权访问的文件夹中,您可以使用 entry.moveTo 方法重命名它。
fileentry.getParent(function(parent) {
fileentry.moveTo(parent, "newname")
})
https://developer.mozilla.org/en-US/docs/Web/API/Entry#moveTo