【问题标题】:moving files between two folders in a shared drive - Cannot use this operation on a shared drive item在共享驱动器中的两个文件夹之间移动文件 - 无法在共享驱动器项目上使用此操作
【发布时间】:2020-09-27 13:24:48
【问题描述】:

我有将文件从一个文件夹移动到另一个文件夹的代码。它不适用于**同一个共享驱动器*中的两个文件夹。我收到以下错误:

Exception: Cannot use this operation on a shared drive item.

function moveFilesFromFolderToFolder(sourceFolderID, destinationFolderID)
{
  var sourceFolder = DriveApp.getFolderById(sourceFolderID);
  var destinationFolder = DriveApp.getFolderById(destinationFolderID);

  var sourceFiles = sourceFolder.getFiles();

  while(sourceFiles.hasNext())
  {
    var file = sourceFiles.next();

    destinationFolder.addFile(file);
    sourceFolder.removeFile(file);
  }
}

我知道我可以在目标文件夹中制作副本,但我不想这样做。我不知道为什么我不能在同一个共享驱动器的文件夹之间移动文件。很奇怪……

DriveApp.getFolders() 从共享驱动器返回文件夹,因此DriveApp确实在共享驱动器上工作。

https://developers.google.com/apps-script/reference/drive/permission 引用了共享云端硬盘。

DriveApp 文档没有任何地方说它不能在共享驱动器上运行。因此,DriveApp 不能在共享驱动器上运行是没有意义的。我几乎可以在共享驱动器上用它做所有其他事情,比如创建文件夹、复制文件等。那么为什么我不能做这件事呢。

我很确定这是一个错误,但如果我遗漏了一些明显的东西,我想在这里检查一下。

【问题讨论】:

  • 您可能必须使用高级Drive Service,不确定DriveApp 是否支持共享驱动器。通过该服务并关注these steps,您可以实现您的目标。
  • @Cooper 你为什么说这是一个类似的问题?他们一点都不像。我的与在共享驱动器中的文件夹之间复制文件有关,而您链接的那个是关于一个网络应用程序和文件被放在根文件夹中。我的处理一个特定的错误。我是否需要发布一个与此问题完全相同的全新问题?
  • @Aerials DriveApp 文档确实提到了共享驱动器。它没有说明无法在同一个共享驱动器中复制移动文件。如果需要,我可以使用 Drive 服务,但我觉得这应该可以工作,或者 Google 会在文档中对此进行说明。
  • 我不确定如何使用 Apps 脚本,但 this answer 向您展示了如何使用 Drive Service。您能否链接到 Apps 脚本提到共享驱动器的文档?
  • @Aerials developers.google.com/apps-script/reference/drive/permission 引用了共享云端硬盘。 DriveApp 文档没有任何地方说它不适用于共享驱动器。因此,DriveApp 不能在共享驱动器上运行是没有意义的。我几乎可以用它做所有其他事情,比如创建文件夹、复制文件等。那么为什么我不能做这件事。这没有意义。

标签: google-apps-script


【解决方案1】:

正如@IMTheNachoMan 指出的那样,这是一个已知问题,我将这个答案与链接一起发布,以便其他可能面临这个问题的人可以转到链接并在问题编号旁边添加一个“星号”更高的知名度。

https://issuetracker.google.com/issues/76201003.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多