我在下面的代码中得到了"您没有权限调用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)
}
}
}
@桑迪,
我终于开始工作了。删除您列出的脚本中的文件的行已被注释。当我删除评论时,我得到了未定义的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()。
更改此行:
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)
};
}
此问题与权限无关。这个错误是错误的。