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

如何在Google Apps Script中使用shortcutDetails获取快捷方式指向的文件ID

解决Google Drive快捷方式获取原文件ID并复制的问题

你的代码报错是因为两个核心问题:

  • 错误直接访问shortcutDetails属性,DriveApp中需用getShortcutDetails()方法获取快捷方式详情
  • 把targetId当成方法调用,实际上它是一个属性,不需要加括号

另外必须先判断文件是否为快捷方式,否则非快捷方式文件调用getShortcutDetails()会返回null,同样引发报错。

正确的代码示例:

function TestFunction() {
  var id = "你的快捷方式ID";
  var file = DriveApp.getFileById(id);
  
  // 先判断当前文件是否是快捷方式
  if (file.getMimeType() === "application/vnd.google-apps.shortcut") {
    var shortcutDetails = file.getShortcutDetails();
    var targetId = shortcutDetails.targetId; // targetId是属性,无需加括号
    Logger.log("原文件ID:" + targetId);
    
    // 获取原文件并复制到目标文件夹
    var targetFile = DriveApp.getFileById(targetId);
    var targetFolder = DriveApp.getFolderById("目标文件夹ID"); // 替换为你的目标文件夹ID
    targetFile.makeCopy("复制后的文件名", targetFolder);
  } else {
    Logger.log("当前文件不是快捷方式");
  }
}

关键说明:

  • 快捷方式的MIME类型固定为application/vnd.google-apps.shortcut,必须先做类型判断
  • getShortcutDetails()方法返回快捷方式详情对象,其中targetId就是原文件的ID
  • 复制文件用makeCopy()方法:第一个参数是复制后的文件名(可选,不传则沿用原文件名),第二个参数是目标文件夹(可选,不传则复制到当前文件所在文件夹)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 07:20:30