You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 00:40:58