google-apps-script - 遍历 Google 云端硬盘中的文件夹/子文件夹/文件

标签 google-apps-script

我有这样的 Google 云端硬盘结构设置:

Client A
--Project 1
----Drafts
----Presentations
----Minutes
--Project 2
----Drafts
----Presentations
----Minutes
Client B
<and so on>

我想写一个脚本,我可以在其中传递项目 1 的 ID,它将遍历三个子文件夹中的每一个并计算文件总数(最终我想计算更新的文件数日期范围,但婴儿步骤!)。

我试过使用 Class FolderIterator 代码,但它希望您将一组文件夹分配给变量“文件夹”(它显示 var folders = DriveApp.getFolders(); 我试过 var folders = DriveApp.getFolderById("<id of Project 1 here>"); 但在我的版本中它只是一个文件夹,它确实需要文件夹的集合)。有没有办法将这三个子文件夹分配给 folders如果我有父文件夹的 ID 变量?或者是否有更好的方法来遍历子文件夹?

最佳答案

作为对 Bryan 的回答的补充(thx,我投了赞成票)我编写了一个测试函数来查看记录器中的结果并使用适当的参数运行该函数以获得您想要的计数。

(此答案不应选为正确答案,因为主要部分来自 Bryan P)

事情是这样的:

    function testTraverse(){
      var originFolder = DriveApp.getFoldersByName('Client A').next(); // use the folder name you want here
      var totalCount = traverseFolder(originFolder,0);
      Logger.log('total files = '+totalCount);// note that if some files are
      // in more than one subfolder the count will count every occurrence of 
      //this file so the total might be > to the sum of intermediate values
    }

    function traverseFolder(folder,total) {
      var name = folder.getName();
      var count = 0;
      var files = folder.getFiles();

      while (files.hasNext()) {
        count++; 
      Logger.log('fileName ('+count+') in '+name+' is : '+files.next().getName());

      }
      Logger.log('\n'+name+' has ' + count+' files\n----------------------\n' );
      var subs = folder.getFolders();
      while (subs.hasNext()) {
        total+=traverseFolder(subs.next(),count);
      }
      return total;
    }

请注意此代码适用于“合理”数量的文件,如果您有许多文件和文件夹,它可能会超过 5 分钟的执行时间限制。在这种情况下,您需要对其进行修改,以便使用该方法提供的 token 处理较小的文件束。

关于google-apps-script - 遍历 Google 云端硬盘中的文件夹/子文件夹/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145137/

相关文章:

javascript - 在 Google Apps 脚本中查找两个数组(缺失值)之间的差异

google-sheets - 以编程方式在 Google SpreadSheet 上插入脚本

google-apps-script - 是否可以将脚本添加到您在脚本中创建的电子表格?

forms - 使用表单更新谷歌电子表格上的现有数据?

google-apps-script - Google Docs Apps Script 中的字数统计功能

google-apps-script - 从多个不相邻的单元格获取值

javascript - 在 Google-Apps-Script 中从外部 URL 抓取大数据的替代方法

javascript - 监控 Google 电子表格单元格值并撤消不需要的更改

javascript - Google 脚本 - Google 表格 - 需要修改脚本以跳过任何具有匹配变量的文本行

javascript - 在Google应用程序脚本GUI中显示Gmail消息