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

App Script修改需求:Drive电影文件夹信息增量写入指定电子表格

改进版Google Drive电影目录脚本

背景

你有一个名为movies的父级文件夹,其下存放多个子文件夹,每个子文件夹内存放对应电影文件,路径示例为:movies / luca (2020) /luca-1080.mkv。
原有脚本可实现两个基础功能:

  • 提取子文件夹名称(示例为luca (2020))
  • 生成对应电影文件的Google Drive访问链接
    但原有脚本存在问题:每次运行都会自动创建一个新的电子表格,无法复用已有表格也不能增量更新。

预期实现效果

  • 可通过ID指定已有电子表格写入数据,无需每次新建
  • 新增电影子文件夹后再次运行脚本,仅追加未录入的新条目,不重复写入已有内容

修改后的完整脚本

使用前请替换脚本开头的三个自定义参数:

  1. MOVIES_FOLDER_ID:替换为你的movies父文件夹ID
  2. TARGET_SPREADSHEET_ID:替换为你要写入的已有电子表格ID
  3. SHEET_NAME:替换为电子表格中要写入的工作表名称,默认Sheet1
function listFolderContents() {
  // 自定义参数,请根据实际情况修改
  const MOVIES_FOLDER_ID = "10Zw76wu2UNz3jufimUFGd8OJErPGnsih";
  const TARGET_SPREADSHEET_ID = "替换为你的目标电子表格ID";
  const SHEET_NAME = "Sheet1";

  // 打开目标电子表格
  const ss = SpreadsheetApp.openById(TARGET_SPREADSHEET_ID);
  const sheet = ss.getSheetByName(SHEET_NAME);
  
  // 读取已有数据用于去重判断
  const existingData = sheet.getDataRange().getValues();
  const existingLinks = new Set();

  // 表格为空则先写入表头
  if (existingData.length === 0) {
    sheet.appendRow(['name', 'link']);
  } else {
    // 跳过表头,将已存在的文件链接存入集合
    for (let i = 1; i < existingData.length; i++) {
      const link = existingData[i][1];
      if (link) existingLinks.add(link);
    }
  }

  // 遍历电影文件夹下的所有子文件夹
  const parentFolder = DriveApp.getFolderById(MOVIES_FOLDER_ID);
  const subFolders = parentFolder.getFolders();
  const newEntries = [];

  while (subFolders.hasNext()) {
    const currentFolder = subFolders.next();
    const folderName = currentFolder.getName();
    const movieFiles = currentFolder.getFiles();

    while (movieFiles.hasNext()) {
      const currentFile = movieFiles.next();
      const fileUrl = currentFile.getUrl();
      // 仅收集未录入的新条目
      if (!existingLinks.has(fileUrl)) {
        newEntries.push([folderName, fileUrl]);
      }
    }
  }

  // 批量追加新条目,提升运行效率
  if (newEntries.length > 0) {
    sheet.getRange(sheet.getLastRow() + 1, 1, newEntries.length, newEntries[0].length).setValues(newEntries);
  }
}

功能说明

  • 首次运行自动生成表头,后续运行自动跳过表头判断重复内容
  • 以文件链接作为去重依据,同一个电影文件不会被重复写入表格
  • 新增的电影子文件夹及内部文件会被自动识别追加到表格末尾

内容的提问来源于stack exchange,提问作者Abdias Rivera Bautista

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:57:03