如何在Google Apps Script中删除Drive内超1个月的备份文件?
解决方案
你可以在现有备份脚本中添加清理旧文件的逻辑,让每次备份完成后自动删除目标文件夹里超过1个月的备份文件。以下是修改后的完整代码:
function archiveCopy() { var file = DriveApp.getFileById(""); // 替换为你的源表格ID var destination = DriveApp.getFolderById(""); // 替换为你的备份文件夹ID // 执行备份操作 var timeZone = Session.getScriptTimeZone(); var formattedDate = Utilities.formatDate(new Date(), timeZone, "yyyy-MM-dd' 'HH:mm:ss"); var name = SpreadsheetApp.getActiveSpreadsheet().getName() + "Copy" + formattedDate; file.makeCopy(name, destination); // 调用清理旧文件的函数 deleteOldBackups(destination); } // 清理指定文件夹中超过1个月的文件 function deleteOldBackups(targetFolder) { // 计算一个月前的时间戳(30天,单位:毫秒) var oneMonthAgo = new Date().getTime() - 30 * 24 * 60 * 60 * 1000; // 获取文件夹内所有文件 var files = targetFolder.getFiles(); // 遍历文件并判断是否删除 while (files.hasNext()) { var file = files.next(); // 获取文件的创建时间(备份文件的创建时间即为备份时间) var fileCreatedTime = file.getDateCreated().getTime(); // 如果文件创建时间早于一个月前,移到回收站 if (fileCreatedTime < oneMonthAgo) { file.setTrashed(true); // 若要永久删除,可替换为:file.remove() } } }
关键说明:
deleteOldBackups函数会遍历目标备份文件夹内的所有文件,通过时间戳对比筛选出超过1个月的旧文件- 默认使用
setTrashed(true)将文件移到回收站,保留恢复的可能;如果需要直接永久删除,可替换为file.remove() - 清理逻辑会在每次备份完成后自动执行,确保备份文件夹只保留最近1个月的文件
内容的提问来源于stack exchange,提问作者James123
相关产品推荐
相关产品推荐

