【发布时间】:2019-10-04 01:58:52
【问题描述】:
我创建了这个脚本来删除超过 3 小时前发布的文件。并且即使最新的文件超过 3 小时,也不会被删除,因此文件夹永远不会为空。
我启用了 Google 的高级服务,称为 DRIVE API V2。
我激活了一个触发器,每 5 分钟分析一次文件夹,但文件通常不会被删除,它们仍保留在文件夹中。该脚本有时有效,有时无效。
我想知道哪里出了问题或者我需要修改什么以使其完美运行。
function getOldFileIDs() {
// Old date is 3 Hours
var oldDate = new Date().getTime() - 3600*1000*3;
var cutOffDate = new Date(oldDate).toISOString();
// Get folderID using the URL on google drive
var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
var files = folder.searchFiles('modifiedDate < "' + cutOffDate + '"');
var obj = [];
while (files.hasNext()) {
var file = files.next();
obj.push({id: file.getId(), date: file.getDateCreated()});
}
obj.sort(function(x, y) {return x.date < y.date ? 1 : -1});
obj.shift();
var fileIDs = obj.map(function(e) {return e.id});
return fileIDs;
};
function deleteFiles() {
var fileIDs = getOldFileIDs();
fileIDs.forEach(function(fileID) {
Drive.Files.remove(fileID);
});
};
我还需要一些帮助,以便此脚本可以分析文件夹中是否存在同名文件,如果存在,它会删除多余的文件,以便每个名称始终只有一个文件。
还有一个新的细节,一个新的错误出现了,直到早些时候没有发生......说:
对 drive.files.delete 的 API 调用失败,错误是该文件权限不足(第 24 行)
第 24 行:
Drive.Files.remove(fileID);
【问题讨论】:
标签: google-apps-script google-drive-api