我在google驱动器上有数千个文件,我已将其删除发送到垃圾箱。我的问题是他们在清空垃圾后仍然出现。
清空垃圾桶根本不起作用。我可以删除项目和减少配额的唯一方法是使用is:trashed搜索运算符搜索项目,永久删除它们,除非这需要永远,我不知道如何使用驱动器api自动执行此操作。
我已成功从另一个问题中运行this,但这对我的事业没有帮助。
我基本上是在一个脚本之后,列出了我拥有的标记为trashed的文件,然后永久删除它们。
任何帮助非常感谢
答案 0 :(得分:1)
files.hasNext()
不会遍历垃圾邮件。 Cooper确实指出了我在高级Google服务API:
//This method requires adding the Advanced Google Services Drive API under Resources -> Advanced Google Services
//And the Google API Console[https://console.cloud.google.com/apis/library/drive.googleapis.com/]
function DeleteTrashedFiles(){
Drive.Files.emptyTrash();
};
如果您想要查看删除的配额量,可以执行此操作。
function DeleteTrashedFilesLogged(){
// Enable Drive.About.get() fields here:
// https://developers.google.com/apis-explorer/?hl=en_US#p/drive/v3/
var lngBytesInTrash = Drive.About.get().quotaBytesUsedInTrash;
var filesDrive = Drive.Files;
Logger.log('Attempting to clean up ' + lngBytesInTrash + ' bytes');
filesDrive.emptyTrash();
Logger.log('Trash now contains ' + Drive.About.get().quotaBytesUsedInTrash + ' bytes');
filesDrive = Drive.Files;
};
答案 1 :(得分:0)
试试这个:
function delTrashedFiles() {
var files=DriveApp.getFiles();
while(files.hasNext()) {
var file=files.next();
if(file.isTrashed()) {
Drive.Files.remove(file.getId())
}
}
}
您需要启用Drive API
答案 2 :(得分:0)
“我在Google驱动器上有成千上万个已删除的文件已发送到垃圾箱。我的问题是,清空垃圾箱后它们仍然显示出来。”
仅需注意第二句话,值得一提的是,当使用Google API(例如,使用rclone)或什至使用Google自己的网络界面时,在发出任何“清空Bin”指令与Google云端硬盘实际上正在采取措施。并且Bin中的文件越多,文件越小,将Bin完全清除所需的时间就越长。成千上万的小文件可能需要花费相当长的时间。而且,您无法控制Google云端硬盘何时真正开始删除,或者删除它如何通过Bin进行操作。
任何熟悉垃圾收集的人都会确切地理解我的意思-“是的,我不知道主人是在什么时候来的”,正如我的部长爸爸会[讨厌地]说:D
您可以通过将“大量”文件“删除”到Bin中,在Web浏览器中显示Bin,然后发出(例如)“ rclone cleanup mydrive:”(这是将rclone命令清空)的方法来亲自演示此行为。 Google Drive Bin(其中mydrive:已配置为指向您的Google Drive)。
首先,您可以观察到尽管发出了该指令,但是可能需要一段时间才能开始更改Bin的文件列表,有时,它可能会非常缓慢地切换列表。
另一件事是,如果您指示Web界面清空垃圾箱,它将立即用表示垃圾箱为空的图形替换文件和文件夹列表。实际上,事实并非如此,因为您将看到如果单击“我的云端硬盘”文件夹,然后立即再次单击Bin,则整个列表将像以前一样重新显示,减去在此期间Google云端硬盘删除的所有内容。但是,在后台,Google云端硬盘将加速删除您的文件。
另外,另一件事是,在发出最初的“清空箱”指令后被删除到箱中的任何其他文件和文件夹,将需要后续命令才能永久删除它们-它们不会被第一个命令覆盖。再一次,您可以通过在第一个“清空垃圾箱”进行时将物品移到垃圾箱中来向自己展示这一点-最终,您将剩下一个包含第二批清除物品的垃圾箱。
我只是认为有必要指出这一点(您可能不同意:D),因为我过去也曾尝试清空我的Bin,并认为Google云端硬盘没有做任何事情。
编辑:抱歉。我的意思是说,一旦发出“ rclone cleanup mydrive:”命令,然后再使用“ rclone about mydrive:”,它报告的统计数据之一就是Bin中文件使用的总空间。通过定期发出“ rclone about ...”,您可以看到Bin每次使用的空间减少。这通常是检查“永远删除”命令进展情况的更好方法,因为Google云端硬盘已将这些文件视为已丢失,尽管是理论上的,而不是实践上的。