You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求协助列出Google Drive主文件夹及子文件夹内指定格式文件

Google Drive全层级文件列表脚本(含所有子文件夹)

实现脚本

function listAllDriveFiles() {
  // 替换为你的Google Drive主文件夹ID,可从文件夹URL末尾获取
  const rootFolderId = "你的主文件夹ID";
  const rootFolder = DriveApp.getFolderById(rootFolderId);
  const fileList = [];
  
  // 递归遍历文件夹及所有子文件夹
  function traverseFolder(folder) {
    // 遍历当前文件夹下的所有文件
    const files = folder.getFiles();
    while (files.hasNext()) {
      const file = files.next();
      fileList.push([
        folder.getName(),
        file.getId(),
        file.getName()
      ]);
    }
    
    // 遍历当前文件夹下的所有子文件夹,递归处理
    const subFolders = folder.getFolders();
    while (subFolders.hasNext()) {
      const subFolder = subFolders.next();
      traverseFolder(subFolder);
    }
  }
  
  // 启动根文件夹遍历
  traverseFolder(rootFolder);
  
  // 打印结果到日志(也可启用下方代码导出到Google表格)
  console.log("文件夹名称,File ID,文件名");
  fileList.forEach(row => console.log(row.join(",")));
  
  /* 可选:将结果导出到新Google表格
  const spreadsheet = SpreadsheetApp.create("Drive文件列表");
  const sheet = spreadsheet.getActiveSheet();
  sheet.appendRow(["文件夹名称", "File ID", "文件名"]);
  sheet.getRange(2, 1, fileList.length, 3).setValues(fileList);
  console.log(`文件列表已生成:${spreadsheet.getUrl()}`);
  */
}

使用步骤

  1. 打开Google Apps Script编辑器,创建新脚本项目
  2. 粘贴上述代码,替换rootFolderId为你的主文件夹ID(比如文件夹URLhttps://drive.google.com/drive/folders/XXX中的XXX)
  3. 点击运行按钮,首次运行需授权脚本访问Google Drive权限
  4. 查看结果:
    • 日志查看:点击编辑器顶部「查看」→「日志」
    • 表格导出:启用代码中注释部分后,运行会自动生成名为“Drive文件列表”的表格,日志会显示表格链接

问题解决说明

  • 针对「Exception: Cannot retrieve the next object: iterator has reached the end」错误:脚本通过while (files.hasNext())和while (subFolders.hasNext())先判断迭代器是否有剩余元素,再调用next(),彻底避免了该报错
  • 针对列表不符合需求:脚本会递归遍历所有层级子文件夹,严格按照「文件夹名称、File ID、文件名」的顺序记录所有文件信息,无层级数量限制

内容的提问来源于stack exchange,提问作者ISMOOSA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:55:02