我创建了此脚本以删除3个多小时前发布的文件。即使最新文件早于3个小时,也不会被删除,因此该文件夹永远不会为空。
我启用了称为DRIVE API V2的Google的高级服务。
我激活了一个触发器,每隔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);
我创建了此脚本以删除3个多小时前发布的文件。即使最新文件的时间早于3个小时,也不会删除该文件,因此该文件夹永远不会为空。我启用了Google的...
通过使用消费者(免费)帐户,只有文件所有者才能删除它们。为防止错误,在调用Drive.Files.remove(fileID)
之前,您的代码应检查您是否是文件所有者。
尝试一下: