如何将Google Drive文件夹列表及文件数导入Google Sheet
导出指定Google Drive目录的文件夹列表及文件数量到Google Sheet
实现步骤
- 创建/打开Google Sheet
新建空白表格或打开用于记录的现有表格。 - 打开脚本编辑器
点击菜单栏「扩展程序」→「Apps 脚本」,进入脚本编辑界面。 - 替换脚本内容
删除编辑器默认代码,粘贴下方修改后的脚本。 - 配置目标文件夹ID
找到脚本中var folderId = '<替换为你的Google Drive文件夹ID>';一行,将占位符替换为目标文件夹的ID(获取方式:打开Drive目标文件夹,地址栏folders/后的字符串即为ID)。 - 运行并授权
点击工具栏「运行」按钮,首次运行需按提示完成授权(选择你的Google账号,在授权页面点击「高级」→「转到XX脚本」确认授权)。 - 查看结果
运行完成后返回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
相关产品推荐
相关产品推荐

