我使用此 Apps 脚本来制作某些文件的备份副本:
var sourceFolderId = "xxxxxx";
var sourceFolder = DriveApp.getFolderById(sourceFolderId);
var latestFiles = sourceFolder.getFiles();
var backupFolderId = "yyyyyy";
var backupFolder = DriveApp.getFolderById(backupFolderId);
while(latestFiles.hasNext()) {
var file = latestFiles.next();
file.makeCopy(backupFolder);
}
它工作正常 - 将所有文件从源文件夹复制到备份文件夹 - 但如果复制的任何文件是“Google Apps脚本”文件,它不会将其复制到备份文件夹,而是将其复制到“我的云端硬盘” 。
然后我必须将其从“我的驱动器”移动到所需的文件夹。我可以用脚本来做到这一点,但我无法弄清楚它为什么要这样做。
我是所有文件和文件夹的所有者。
有什么想法吗?
thanks
同样在我的环境中,我也确认了和你一样的情况。仅 Google Apps 脚本无法复制到备份文件夹。我认为这可能是一个错误。所以我想到了针对这种情况的解决方法。我测试的模式如下。
- Tried to move the copied GAS files from "My Drive" to the backup folder using
addFile()
and removeFile()
.
- A parent ID of backup folder can be added. But the parent ID of "My Drive" cannot be removed.
- Tried to copy GAS files using
Drive.Files.copy
of Advanced Google Services.
- The copied GAS files are created to "My Drive". This is the same to
makeCopy()
.
- Tried to move the copied GAS files from "My Drive" to the backup folder using
Drive.Files.update
of Advanced Google Services.
- The parent ID can be changed from "My Drive" to backup folder.
修改后的脚本:
在此修改后的脚本中,Google Apps 脚本文件使用以下命令从“我的云端硬盘”移动到备份文件夹Drive.Files.update
.
var sourceFolderId = "xxxxxx";
var sourceFolder = DriveApp.getFolderById(sourceFolderId);
var latestFiles = sourceFolder.getFiles();
var backupFolderId = "yyyyyy";
var backupFolder = DriveApp.getFolderById(backupFolderId);
while(latestFiles.hasNext()) {
var file = latestFiles.next();
var res = file.makeCopy(backupFolder); // Modified
if (file.getMimeType() == MimeType.GOOGLE_APPS_SCRIPT) { // Added
Drive.Files.update({"parents": [{"id": backupFolderId}]}, res.getId()); // Added
}
}
Note :
为了使用此修改后的脚本,请在高级 Google 服务和 API 控制台中启用 Drive API,如下所示。
在高级 Google 服务中启用 Drive API v2
- On script editor
- 资源 -> 高级 Google 服务
- 启用云端硬盘 API v2
在 API 控制台启用 Drive API
- On script editor
- 资源->云平台项目
- 查看API控制台
- 在入门中,单击启用 API 并获取密钥等凭据。
- 在左侧,单击“库”。
- 在搜索 API 和服务中,输入“Drive”。然后单击驱动器 API。
- 单击启用按钮。
- 如果API已经启用,请不要关闭。
参考 :
如果我误解了你的问题,我很抱歉。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)