google-apps-script计算文件夹中的文件

wit*_*ham 4 if-statement count google-apps-script google-drive-api

我有一个搜索,但似乎无法找到我要找的东西.

我正在寻找使我能够执行此伪代码的代码:

  1. 计算特定Google云端硬盘文件夹中的文件数量(按文件夹ID)
  2. 如果文件计数高于'x',请执行此操作{另一段代码}
  3. 否则,退出

谁能帮我吗?

Ala*_*lls 7

我找不到任何方法来计算文件数,所以我猜你需要遍历每个文件,并有一个计数器:

function countFilesInFolder() {
  var count,file,files,theFolder;//Define variables without assigning a value

  theFolder = DriveApp.getFolderById('your file ID');
  files = theFolder.getFiles();

  count = 0;

  while (files.hasNext()) {
   count++;
   file = files.next();
   //Logger.log(file.getName());
   if (count > 5) {
     fncNextFunction();
     break;
   };
 };

  Logger.log(count);
};

function fncNextFunction() {
  Logger.log('fncNextFunction');

};
Run Code Online (Sandbox Code Playgroud)

注意:如果我只是在没有获取下一个文件的情况下进行计数器增量,则脚本编辑器会冻结.

以下是使用高级Drive Service的替代方法:

//This requires the Drive API To be turned on in the Advanced Google Services
function countFilesInFolder() {

 var query = 'trashed = false and ' +
        "'Your Folder ID here' in parents";

  var filesInFolder = Drive.Files.list({q: query});

  Logger.log('filesInFolder: ' + filesInFolder.items.length);

  for (var i=0;i<filesInFolder.items.length;i++) {
    //Logger.log('key: ' + key);
    var thisItem = filesInFolder.items[i];
    Logger.log('value: ' + thisItem.title);
  };
};
Run Code Online (Sandbox Code Playgroud)

有关使用页面令牌列出超过100个结果的示例,请参阅"文档"