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

如何用Google App Script获取多共享云端硬盘指定公共文件夹内文件路径?

用Google App Script获取多共享云端硬盘中特定文件夹的文件路径

直接上可运行的实现方案,核心是遍历共享硬盘、定位公共文件夹、提取文件并拼接路径:

完整代码实现

function getSharedDriveFilePaths() {
  const targetFolderName = "folder"; // 你的公共文件夹名称
  const filePaths = [];

  // 获取所有有权访问的共享云端硬盘
  const sharedDrives = Drive.Drives.list({pageSize: 100});
  if (!sharedDrives.items || sharedDrives.items.length === 0) {
    console.log("没有可访问的共享云端硬盘");
    return filePaths;
  }

  // 逐个处理共享硬盘
  sharedDrives.items.forEach(drive => {
    const driveId = drive.id;
    const driveName = drive.name;

    // 搜索当前硬盘里的目标公共文件夹
    const folderSearch = Drive.Files.list({
      q: `mimeType='application/vnd.google-apps.folder' and name='${targetFolderName}'`,
      corpora: 'drive',
      driveId: driveId,
      includeItemsFromAllDrives: true,
      supportsAllDrives: true,
      pageSize: 10
    });

    if (folderSearch.items && folderSearch.items.length > 0) {
      const targetFolder = folderSearch.items[0];
      // 提取目标文件夹下的所有非文件夹文件
      const fileSearch = Drive.Files.list({
        q: `'${targetFolder.id}' in parents and mimeType != 'application/vnd.google-apps.folder'`,
        corpora: 'drive',
        driveId: driveId,
        includeItemsFromAllDrives: true,
        supportsAllDrives: true,
        pageSize: 100
      });

      if (fileSearch.items && fileSearch.items.length > 0) {
        // 拼接成要求的路径格式并收集
        fileSearch.items.forEach(file => {
          const path = `${driveName}/${targetFolderName}/${file.title}`;
          filePaths.push(path);
          console.log(path);
        });
      } else {
        console.log(`[${driveName}] 目标文件夹内无文件`);
      }
    } else {
      console.log(`[${driveName}] 未找到名为${targetFolderName}的文件夹`);
    }
  });

  return filePaths;
}

关键配置与注意事项

  • 启用高级Drive服务:在App Script编辑器顶部,点击「服务」→「添加服务」,找到「Drive API」并添加,否则代码会报错。
  • 权限要求:运行脚本的账号必须拥有对应共享硬盘的读取权限,且目标文件夹允许该账号访问。
  • 分页处理:示例中pageSize设为100,如果你的共享硬盘/文件数量超过这个值,需要通过pageToken循环获取所有数据(可以在Drive.Drives.list和Drive.Files.list中加入pageToken参数实现)。
  • 文件夹唯一性:代码默认取第一个匹配的folder文件夹,如果共享硬盘中有重名文件夹,需要修改q参数增加筛选条件(比如按文件夹ID)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:33:20