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

如何将Google Drive文件夹列表及文件数导入Google Sheet

导出指定Google Drive目录的文件夹列表及文件数量到Google Sheet

实现步骤

  1. 创建/打开Google Sheet
    新建空白表格或打开用于记录的现有表格。
  2. 打开脚本编辑器
    点击菜单栏「扩展程序」→「Apps 脚本」,进入脚本编辑界面。
  3. 替换脚本内容
    删除编辑器默认代码,粘贴下方修改后的脚本。
  4. 配置目标文件夹ID
    找到脚本中var folderId = '<替换为你的Google Drive文件夹ID>';一行,将占位符替换为目标文件夹的ID(获取方式:打开Drive目标文件夹,地址栏folders/后的字符串即为ID)。
  5. 运行并授权
    点击工具栏「运行」按钮,首次运行需按提示完成授权(选择你的Google账号,在授权页面点击「高级」→「转到XX脚本」确认授权)。
  6. 查看结果
    运行完成后返回Sheet,即可看到文件夹列表及对应文件统计数据。

完整脚本

function listFoldersWithFileCounts() {
  var folderId = '<替换为你的Google Drive文件夹ID>'; // 替换成目标文件夹ID
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.clear();
  // 写入表头
  sheet.appendRow(["父路径", "文件夹名称", "直接文件数", "包含子文件夹的总文件数", "文件夹URL", "文件夹ID"]);
  
  try {
    var parentFolder = DriveApp.getFolderById(folderId);
    // 处理根文件夹
    processFolder(parentFolder, parentFolder.getName());
    // 递归遍历子文件夹
    traverseSubFolders(parentFolder, parentFolder.getName());
  } catch (e) {
    Logger.log("错误信息: " + e.toString());
  }
}

// 处理单个文件夹,计算文件数并写入表格
function processFolder(folder, parentPath) {
  // 统计当前文件夹直接包含的文件数
  var directFileCount = folder.getFiles().getNumItems();
  // 统计当前文件夹及所有子文件夹的总文件数
  var totalFileCount = countAllFilesInFolder(folder);
  
  var rowData = [
    parentPath,
    folder.getName(),
    directFileCount,
    totalFileCount,
    folder.getUrl(),
    folder.getId()
  ];
  
  SpreadsheetApp.getActiveSheet().appendRow(rowData);
}

// 递归遍历所有子文件夹
function traverseSubFolders(parentFolder, parentPath) {
  var childFolders = parentFolder.getFolders();
  while (childFolders.hasNext()) {
    var childFolder = childFolders.next();
    var newParentPath = parentPath + " > " + childFolder.getName();
    processFolder(childFolder, newParentPath);
    traverseSubFolders(childFolder, newParentPath);
  }
}

// 递归计算文件夹及其子文件夹的总文件数
function countAllFilesInFolder(folder) {
  var count = folder.getFiles().getNumItems();
  var subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    count += countAllFilesInFolder(subFolders.next());
  }
  return count;
}

脚本说明

  • 主函数listFoldersWithFileCounts:初始化表格、获取目标文件夹、启动遍历流程。
  • processFolder:针对单个文件夹,计算直接文件数和全量文件数,将数据写入Sheet。
  • traverseSubFolders:递归遍历所有子文件夹,调用processFolder处理每个子目录。
  • countAllFilesInFolder:递归统计当前文件夹及所有子文件夹内的文件总数。

若仅需统计文件夹内的直接文件(不含子文件夹中的文件),可删除表头的「包含子文件夹的总文件数」列,并移除totalFileCount相关代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:10:27