请求协助列出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()}`); */ }
使用步骤
- 打开Google Apps Script编辑器,创建新脚本项目
- 粘贴上述代码,替换
rootFolderId为你的主文件夹ID(比如文件夹URLhttps://drive.google.com/drive/folders/XXX中的XXX) - 点击运行按钮,首次运行需授权脚本访问Google Drive权限
- 查看结果:
- 日志查看:点击编辑器顶部「查看」→「日志」
- 表格导出:启用代码中注释部分后,运行会自动生成名为“Drive文件列表”的表格,日志会显示表格链接
问题解决说明
- 针对「Exception: Cannot retrieve the next object: iterator has reached the end」错误:脚本通过
while (files.hasNext())和while (subFolders.hasNext())先判断迭代器是否有剩余元素,再调用next(),彻底避免了该报错 - 针对列表不符合需求:脚本会递归遍历所有层级子文件夹,严格按照「文件夹名称、File ID、文件名」的顺序记录所有文件信息,无层级数量限制
内容的提问来源于stack exchange,提问作者ISMOOSA
相关产品推荐
相关产品推荐

