我尝试使用以下方法从驱动器中删除一些文件:
function deleteFiles(){
var files = DriveApp.searchFiles('title:720p');
Logger.log(files);
//Logger.log(files.next().getName);
while (files.hasNext()) {
// files.next().setTrashed(true);
//Logger.log(files.next().getName());
Logger.log('hola');
}
}
但我在所有注释行中都得到Error: Invalid argument:q
,即使在while循环中也是如此。第一个记录器显示了文件夹迭代器,所以每个都应该没问题......
文件存在!并且它们都有不同的名称,但它们有共同之处" 720p"在他们的名字。
此外,我还没有能够实现这一点,我只需删除仅在一个特定文件夹中的这些文件。
答案 0 :(得分:1)
我找到了解决方案,但效率不高,请随意提供更有效的解决方案:
function deleteFiles(){
var folder = DriveApp.getFoldersByName('MyFolder').next();
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
var filename = file.getName();
if (filename.indexOf("720p")>-1){
Logger.log(filename);
file.setTrashed(true);
}
}
}
答案 1 :(得分:1)
您的searchterm似乎位于文件名或标题的中间或末尾。尝试使用它,它似乎适合我。 https://developers.google.com/drive/v3/web/search-parameters
function deleteFiles() {
var searchTerm = "12345test"
var searchFor ="fullText contains '" + searchTerm + "'"; //single quotes are needed around searchterm
var files = DriveApp.searchFiles(searchFor);
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
// file.setTrashed(true)
}
}

答案 2 :(得分:0)
可以尝试这样的事情 -
var a = new MyClass();
var b = new MyClass();
a.myFunction() === b.myFunction(); //false
a.__proto__.myFunction() === b.__proto__.myFunction() //true
答案 3 :(得分:0)
查看高级驱动器服务和查询选项"标题包含xxxx"
答案 4 :(得分:0)
这是另一种方法,使用searchFiles技术
function deleteFiles() {
var searchTerm = "12345test"
var searchFor ="title contains '" + searchTerm + "'"; //single quotes are needed around searchterm
var files = DriveApp.searchFiles(searchFor);
while (files.hasNext()) {
var file = files.next();
Logger.log(file.getName());
// file.setTrashed(true)
}
}