【问题标题】:Checking if files already exist and are over a certain size in Google Drive folder检查文件是否已存在并且在 Google Drive 文件夹中是否超过一定大小
【发布时间】:2017-11-30 08:30:29
【问题描述】:

我正在尝试遍历类代码列表并检查特定 Google 驱动器文件夹中是否已存在具有该名称的文件。

我有它的工作,但它很慢,我想我一定错过了一个技巧。有 107 个唯一的类代码,我的代码一次一个。我不知道是否有办法获取文件夹中所有文件的名称并进行检查?

这是我的代码:

function ClassDataPacksProgress() {
  var dateStamp=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd/MM/yyyy")
  var ss=SpreadsheetApp.getActive();
  var foldersave=DriveApp.getFolderById(folderkeygoeshere);
  var fetch='https://docs.google.com/spreadsheets/d/'+mainSSKey+'/export?format=pdf&size=A4&portrait=false'
  var classCodeSheet=ss.getSheetByName('ClassCodes')
  var maxRowNum=classCodeSheet.getLastRow()+1;
  var dataRange=classCodeSheet.getRange(1, 1, maxRowNum, 1);
  var data=dataRange.getValues();
  var count = 0
  for (var r=0;r<data.length-1;r++){      
      var classCode = data[r][0]
      var name=classCode + " " + dateStamp + ".pdf";
      var filechk = DriveApp.getFilesByName(name);
      var chk=filechk.hasNext();
      if (chk === false) {
       }
      else {
        var file = filechk.next()
        if (file.getSize() > 3000){
          count = count + 1
          }
       }

   }
}

任何帮助都会很棒!

谢谢

【问题讨论】:

    标签: javascript jquery google-apps-script google-sheets


    【解决方案1】:

    搜索所有带有日期戳和标题中的“pdf”的文件:

    function ClassDataPacksProgress() {
      //Your code at top
    
      var allFiles,file;
    
      allFiles = foldersave
        .searchFiles('title contains "' + dateStamp + '" and title contains ".pdf"');
    
       while (allFiles.hasNext()) {
         file = files.next();
         Logger.log(file.getName());
    
         if (file.getSize() > 3000){
           count = count + 1
         }
       }
    }
    

    很遗憾,目前无法按文件大小进行搜索。您当前的代码不是按文件夹搜索,而是搜索整个云端硬盘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-09
      • 2020-07-01
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      相关资源
      最近更新 更多