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

如何提取Google Drive共享驱动器的一级文件夹列表至Google Sheets

提取Google共享驱动器一级文件夹名称到Google Sheets

原代码的问题

你的代码没出结果,核心问题有两个:

  1. 调用getFiles()获取的是文件,但你需要的是文件夹列表,方向完全错了
  2. 共享驱动器的文件夹用名称查找容易触发权限或重名问题,原逻辑没针对共享驱动器做适配

修正后的代码

下面的代码专门适配共享驱动器,能准确提取指定路径下的一级文件夹名称和链接:

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("导出完成!");
}

使用说明

  1. 把代码里的sharedDriveName替换成你的共享驱动器名称;如果要提取共享驱动器内某个子文件夹下的一级目录,就换成getFolderById并填入子文件夹的ID
  2. 运行脚本时会弹出授权提示,必须允许脚本访问Google Drive和Google Sheets,否则无法读取共享驱动器内容
  3. 脚本优先使用当前打开的表格,没有的话会自动新建一个,导出完成后会弹出提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:10:33