【发布时间】: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 不能在共享驱动器上运行是没有意义的。我几乎可以用它做所有其他事情,比如创建文件夹、复制文件等。那么为什么我不能做这件事。这没有意义。