检查文件是否已存在且在Google云端硬盘文件夹中是否超过特定大小

时间:2017-11-30 08:30:30

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

我正在尝试遍历类代码列表,并检查特定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
          }
       }

   }
}

任何帮助都会很棒!

由于

1 个答案:

答案 0 :(得分:1)

搜索所有带有日期戳的文件和&#34; pdf&#34;在标题中:

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
     }
   }
}

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