我收到“你没有权限调用searchFiles(第2行)。”在下面的代码中。当我在编辑器中测试运行时没有错误。但是当我在工作表中使用它时,我得到了错误。我如何获得许可?
function deleteDocByName(fileName){
var docs=DriveApp.searchFiles('title contains fileName')
for(n=0;n<docs.length;++n){
if(docs[n].getName() == fileName){
var ID = docs[n].getId()
DriveApp.getFileById(ID).setTrashed(true)
}
}
}
答案 0 :(得分:1)
@Sandy,
我终于让功能发挥作用了。删除了列出的脚本中的文件的行已注释。当我删除评论时,我收到了未定义的ID错误。所以我通过添加以下行来为ID分配值:
ID = Logger.log(thisDoc.getId());
但是生成的ID无效错误。所以我修改了脚本并使其工作。
以下是我提出的建议:
function deleteDocByName(fileName){
var docs = DriveApp.searchFiles('title contains "' + fileName + '"');
var thisDoc;
while (docs.hasNext()) {
thisDoc = docs.next();
var ID = thisDoc.getId();
DriveApp.getFileById(ID).setTrashed(true)
}
}
我还使用onChange来触发saveAsTabDelimitedTextFile()。
答案 1 :(得分:0)
更改此行:
var docs=DriveApp.searchFiles('title contains fileName')
要:
var docs=DriveApp.searchFiles('title contains "' + fileName + '"');
并且您无法使用for
循环。
完整代码:
function deleteDocByName(fileName){
//fileName = 'Test';
var docs = DriveApp.searchFiles('title contains "' + fileName + '"');
var thisDoc;
Logger.log(docs.hasNext())
while (docs.hasNext()) {
thisDoc = docs.next();
Logger.log(thisDoc.getId());
//DriveApp.getFileById(ID).setTrashed(true)
};
}
此问题与权限无关。错误是错误的。