我有备份脚本将我的文件复制到GDrive中,而且它还删除了X天以上的文件。但我的垃圾箱里装满了很多这些文件。我想把它们从垃圾桶里拿出来。
我写了这段代码:
function getTrashedFiles() {
//find every file in bin
var trashedSearch = DriveApp.searchFiles('trashed=true');
while (trashedSearch.hasNext()) {
var file = trashedSearch.next();
if (file.getName().indexOf("DBKLP") >= 0) {
//this is correctly printing files that I want to remove
Logger.log(file.getName());
//this should remove from bin
DriveApp.removeFile(file);
}
}
}这段代码正确地找到了从"DBKLP“开始的每个文件。但是当它运行时,它并不是从bin中删除文件。它只是‘再一次’删除他们,所以他们的删除日期基本上是“现在”。
我找不到“从垃圾箱中移除”的方法.
发布于 2020-05-02 22:10:11
发布于 2020-05-08 13:00:12
在文档:removeFile(子文件)中,不会删除文件,但是如果文件从其所有父文件中删除,则无法在驱动器中看到它,除非搜索它或使用"All items“视图。
你试过Drive.Files.remove()而不是DriveApp.removeFile()吗?要启用它,必须在脚本编辑器中单击"Services“的+按钮。在这里查看: imgur.com/cVFCAXQ (或者,在旧编辑器中导航到参考资料>高级谷歌服务>驱动API)。
我有一个类似的脚本,似乎有效。注意,它必须找到所有的文件和文件夹,因为它们是分开处理的。
// Delete all files from trash older than 1 month
function cleanOldTrash() {
var files = DriveApp.getTrashedFiles();
var folders = DriveApp.getTrashedFolders();
var lastMonth = new Date();
lastMonth.setDate(lastMonth.getDate() - 30);
while (files.hasNext()) {
var file = files.next();
if (file.getLastUpdated() < lastMonth ) {
Drive.Files.remove(file.getId());
}
}
while (folders.hasNext()) {
var folder = folders.next();
if (folder.getLastUpdated() < lastMonth) {
Drive.Files.remove(folder.getId());
}
}
}实际上,当文件存储在我没有权限访问的Team驱动器的垃圾上时,这个脚本确实有问题,但是我将在另一个问题中尝试获得更多的帮助。如果需要的话,我会更新这个答案。
https://stackoverflow.com/questions/61566815
复制相似问题