Google云端硬盘删除文件应用脚本getAllFilesForPaging

时间:2016-02-16 11:41:57

标签: api google-apps-script

我试图想出这个剧本,但没有快乐。

我在某个日期之后使用someones脚本来删除文件,但我想将其修改为只删除任何.bak文件,无论日期如何。这有点好,但我一直收到错误:

“TypeError:在对象驱动器中找不到函数getAllFilesForPaging”

'function DeleteMyJpegs() {
var pageSize = 200;
var files = null;
var token = null;
var i = null;
var ThirtyDaysBeforeNow = new Date().getTime()-3600*1000*24*30 ;// 30 is the number of days 

//(3600秒= 1小时,1000毫秒= 1秒,24小时= 1天30天是您想要的持续时间     Logger.clear();

do {


var result = DriveApp.getAllFilesForPaging(pageSize, token);
var files = result.getFiles()
var token = result.getToken();
    for(n=0;n<files.length;++n){
        if(files[n].getName().toLowerCase().match('.bak')=='.bak' && files[n].getDateCreated().getTime()<ThirtyDaysBeforeNow){
//            files[n].setTrashed(true)
            Logger.log(files[n].getName()+' created on '+Utilities.formatDate(files[n].getDateCreated(), 'GMT','MMM-dd-yyyy'))
        }
      }    
 } while (files.length == pageSize);

  MailApp.sendEmail('email@address.co.uk', 'Script AUTODELETE BAK report', Logger.getLog());

}'

1 个答案:

答案 0 :(得分:0)

DriveApp中没有getAllFilesForPaging()方法。这可能是原作者编写的自定义函数。这是使用DriveApp文件迭代器重写它的方法。

function deleteMyBAKs(){
  var ThirtyDaysBeforeNow = new Date().getTime()-3600*1000*24*30 ;// 30 is the number of days
  var files = DriveApp.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    if(file.getName().toLowerCase().match('.bak')=='.bak' && file.getDateCreated().getTime()<ThirtyDaysBeforeNow){
      try{file.setTrashed(true);}
      catch(e){Logger.log("Unable to Trash: "+file.getName()) }         
      Logger.log(file.getName()+' created on '+Utilities.formatDate(file.getDateCreated(), 'GMT','MMM-dd-yyyy'));
     }       
   } 
  MailApp.sendEmail('email@address.co.uk', 'Script AUTODELETE BAK report', Logger.getLog());
}

您可以在以下位置阅读有关DriveApp和文件迭代器的更多信息:
https://developers.google.com/apps-script/reference/drive/drive-app