通过搜索删除文件夹中的一些谷歌驱动器文件

时间:2017-05-01 19:51:20

标签: google-apps-script google-drive-api drive

我尝试使用以下方法从驱动器中删除一些文件:

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"在他们的名字。

此外,我还没有能够实现这一点,我只需删除仅在一个特定文件夹中的这些文件。

5 个答案:

答案 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)
 }
}