如何提取Google Drive共享驱动器的一级文件夹列表至Google Sheets
提取Google共享驱动器一级文件夹名称到Google Sheets
原代码的问题
你的代码没出结果,核心问题有两个:
- 调用
getFiles()获取的是文件,但你需要的是文件夹列表,方向完全错了 - 共享驱动器的文件夹用名称查找容易触发权限或重名问题,原逻辑没针对共享驱动器做适配
修正后的代码
下面的代码专门适配共享驱动器,能准确提取指定路径下的一级文件夹名称和链接:
function listSharedDriveFolders() { // 替换成你的共享驱动器信息 const sharedDriveName = "你的共享驱动器名称"; // 如果目标是共享驱动器根目录下的文件夹,用这行;如果是子文件夹,替换成目标文件夹ID const targetFolder = DriveApp.getSharedDrivesByName(sharedDriveName).next().getRootFolder(); // 子文件夹场景替换为:const targetFolder = DriveApp.getFolderById("目标文件夹ID"); // 选择使用当前表格或新建表格 const sheetTitle = "共享驱动器文件夹清单"; let ss; try { ss = SpreadsheetApp.getActiveSpreadsheet(); // 用当前打开的表格 } catch { ss = SpreadsheetApp.create(sheetTitle); // 新建表格 } const sheet = ss.getSheetByName(sheetTitle) || ss.insertSheet(sheetTitle); sheet.clear(); sheet.appendRow(["文件夹名称", "文件夹链接"]); // 遍历一级文件夹并写入表格 const folders = targetFolder.getFolders(); while (folders.hasNext()) { const folder = folders.next(); sheet.appendRow([folder.getName(), folder.getUrl()]); } SpreadsheetApp.getUi().alert("导出完成!"); }
使用说明
- 把代码里的
sharedDriveName替换成你的共享驱动器名称;如果要提取共享驱动器内某个子文件夹下的一级目录,就换成getFolderById并填入子文件夹的ID - 运行脚本时会弹出授权提示,必须允许脚本访问Google Drive和Google Sheets,否则无法读取共享驱动器内容
- 脚本优先使用当前打开的表格,没有的话会自动新建一个,导出完成后会弹出提示
内容的提问来源于stack exchange,提问作者RoosterMagic22
相关产品推荐
相关产品推荐

