【发布时间】:2019-02-14 16:28:14
【问题描述】:
我有一个表格表单,我们的公司用户将它保存到我们的公司 google Drive 文件夹 (G Suite)。我们需要将这些表格保留 30 天。
我想在 35 天后自动删除这些文件。所以我写了这个脚本:
function DeleteOldFiles() {
var Folders = new Array(
'0B8xnkPYxGFbUMktOWm14TVA3Yjg',
'1C_VUaqPl9FQlaajY_wsZzJgVGHDrPKm8');
var Files;
Logger.clear();
for each (var FolderID in Folders) {
Folder = DriveApp.getFolderById(FolderID)
Files = Folder.getFiles();
while (Files.hasNext()) {
var File = Files.next();
if (new Date() - File.getLastUpdated() > 35 * 24 * 60 * 60 * 1000) {
File.setTrashed(true); // Places the file int the Trash folder
// Drive.Files.remove(File.getId()); // Permanently deletes the file
Logger.log('File ' + File.getName() + ' was deleted.');
}}}
if(Logger.getLog() != '')
MailApp.sendEmail('batnip@choiceaviation.com', 'Backups have been removed from Google Drive', Logger.getLog());}
问题是我有时会收到这些消息: “拒绝访问:DriveApp。(第 18 行,文件“代码”)”
脚本有时有效,有时无效。我最终得出的结论是,它可能仅在删除我自己的文件时才有效,但在其他 G Suite 用户那里有文件时无效。
解决方案?
【问题讨论】:
标签: google-apps-script google-sheets google-drive-api delete-file