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

修改共享盘Google Script以获取指定文件夹内容并解决参数过大报错

解决Google Script遍历共享盘数据量过大的报错问题

方案1:仅遍历指定目标文件夹(含子文件夹)

原脚本大概率误遍历了整个共享盘,修改后仅从你指定的目标文件夹开始遍历,严格限定范围:

function listFolderContents() {
  // 替换为你的目标文件夹ID
  const targetFolderId = "YOUR_TARGET_FOLDER_ID";
  const targetFolder = DriveApp.getFolderById(targetFolderId);
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  sheet.clear();
  sheet.appendRow(["名称", "类型", "链接"]);

  // 仅遍历目标文件夹及其子文件夹
  traverseFolder(targetFolder, sheet);
}

function traverseFolder(folder, sheet) {
  // 遍历当前文件夹下的文件
  const files = folder.getFiles();
  while (files.hasNext()) {
    const file = files.next();
    sheet.appendRow([file.getName(), "文件", file.getUrl()]);
  }

  // 遍历当前文件夹下的子文件夹并递归处理
  const subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    const subFolder = subFolders.next();
    sheet.appendRow([subFolder.getName(), "文件夹", subFolder.getUrl()]);
    traverseFolder(subFolder, sheet);
  }
}

关键修改点:

  • 通过getFolderById直接定位目标文件夹,避免遍历整个共享盘
  • 递归逻辑仅在目标文件夹的层级内执行,不会扩散到无关目录

方案2:仅返回文件夹名称(忽略文件)

如果只需要文件夹列表,完全跳过文件遍历,直接削减数据量:

function listOnlyFolders() {
  // 替换为你的目标文件夹ID
  const targetFolderId = "YOUR_TARGET_FOLDER_ID";
  const targetFolder = DriveApp.getFolderById(targetFolderId);
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  sheet.clear();
  sheet.appendRow(["文件夹名称", "文件夹链接"]);

  traverseOnlyFolders(targetFolder, sheet);
}

function traverseOnlyFolders(folder, sheet) {
  // 记录当前文件夹
  sheet.appendRow([folder.getName(), folder.getUrl()]);

  // 递归遍历子文件夹
  const subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    const subFolder = subFolders.next();
    traverseOnlyFolders(subFolder, sheet);
  }
}

关键修改点:

  • 移除所有文件处理逻辑,仅保留文件夹的遍历与记录
  • 同样严格限定在目标文件夹范围内操作

注意事项

  • 将代码中的YOUR_TARGET_FOLDER_ID替换为实际的文件夹ID(可从文件夹URL末尾提取)
  • 若目标文件夹层级极深、子文件夹数量仍超出限制,可添加递归深度判断(比如设置最大遍历层级)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:35:32