首页 > 解决方案 > 如何在谷歌驱动器中移动快捷方式

问题描述

我需要使用谷歌应用脚​​本将快捷方式文件从一个目的地移动到另一个目的地。通常我会像这样移动文件或文件夹:

function move(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sStamdata = ss.getSheetByName("New");
  var folderOld = DriveApp.getFolderById(folderOldId);
  var destination = DriveApp.getFolderById(folderId);
  var id = sStamdata.getRange('D77').getValue();
  var file = DriveApp.getFileById(id);

     folderOld.removeFile(file)
     destination.addFile(file)

但这不适用于快捷方式。有任何想法吗?

标签: filegoogle-apps-scriptgoogle-drive-apishortcut

解决方案


这个答案怎么样?

修改点:

  • 在当前阶段,似乎无法使用 Drive 服务移动快捷方式。我认为这可能会在未来的更新中得到解决。
    • 所以作为目前的解决方法,在这个答案中,我想建议使用“文件:补丁”Drive API v2的方法,因为使用了高级谷歌服务的Drive API。

当您的脚本被修改时,请进行如下修改。

修改后的脚本:

在运行脚本之前,请在 Advanced Google services 中启用 Drive API

function move(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sStamdata = ss.getSheetByName("New");
//  var folderOld = DriveApp.getFolderById(folderOldId);
//  var destination = DriveApp.getFolderById(folderId);
  var id = sStamdata.getRange('D77').getValue();
//  var file = DriveApp.getFileById(id);

  Drive.Files.patch({parents: [{id: folderId}]}, id);  // Added
}
  • folderId是目标文件夹 ID。
  • 请再次确认快捷方式的文件ID。

笔记:

  • 例如,当使用浏览器通过共享链接确认快捷方式的文件ID时,文件ID即为原始文件的ID。请注意这一点。

参考:


推荐阅读