Gradle:删除超过某个时间的文件

Gradle:删除超过某个时间的文件,gradle,Gradle,我有一个gradle任务,删除与名称中的特定模式匹配的文件: task deleteTempFiles(type: Delete) { tasks['clean'].dependsOn(it) delete fileTree(dir: '..', include: '**/tempfile*.tmp') } 我想删除超过2小时或24小时的文件。这件事可能需要两天时间。在gradle中,最简单的方法是什么?如果您正在寻找一种能够删除所有文件/文件夹的解决方案,而不仅仅是“清空”文

我有一个gradle任务,删除与名称中的特定模式匹配的文件:

task deleteTempFiles(type: Delete) {
    tasks['clean'].dependsOn(it)
    delete fileTree(dir: '..', include: '**/tempfile*.tmp')
}

我想删除超过2小时或24小时的文件。这件事可能需要两天时间。在gradle中,最简单的方法是什么?

如果您正在寻找一种能够删除所有文件/文件夹的解决方案,而不仅仅是“清空”文件夹,那么我想到了一种可以用于其他用例的解决方案

task deleteTempFiles(type: Delete) {

    def cutoff = new Date().minus(1); //24 hrs ago

    delete fileTree (dir: '..')
        .matching{ include '**/tempfile*.tmp' }
        .findAll { 
            def filedate = new Date (it.lastModified())
            filedate.before(cutoff) 
        }
}
/**
 * cleanCypressBuildCache will clean up build files that Cypress generates
 * before running tests. These are normally self-cleaned but if the build is interrupted
 * or dies during Cypress tests, then they'll remain forever. So we clean them up here.
 */
task cleanCypressBuildCache(type: Delete) {
    def cypressBuildFolder = System.getenv('APPDATA') + '/Cypress/cy/production/projects'
    def daysToKeepOldItems = 2

    description = 'Tidy up Cypress ' + cypressBuildFolder

    // Delete old folders / files
    def cutoff = new Date().minus(daysToKeepOldItems);
    def deleteList = []
    fileTree (dir: cypressBuildFolder).visit {
        def File file = it.file
        def shouldBeDeleted = new Date(file.lastModified()).before(cutoff)
        if (shouldBeDeleted) {
            deleteList << file
        }
    }
    // Not sure why, by `it.delete()` didn't work but `project.delete(it)` did.
    deleteList.each { project.delete(it) }
}
/**
*cleanCypressBuildCache将清理Cypress生成的生成文件
*在运行测试之前。这些通常是自清洁的,但如果构建被中断
*或者在赛普拉斯测试中死亡,那么它们将永远存在。所以我们在这里清理它们。
*/
任务cleanCypressBuildCache(类型:Delete){
def-cypressBuildFolder=System.getenv('APPDATA')+'/Cypress/cy/production/projects'
def DAYSTOKEPOLDIEMS=2
description='整理Cypress'+cypressBuildFolder
//删除旧文件夹/文件
def截止=新日期()减去(daystokepolditems);
def deleteList=[]
文件树(目录:cypressBuildFolder)。访问{
def File=it.File
def shouldBeDeleted=新日期(file.lastModified())。在(截止)之前
如果(应该删除){

deleteList我想您应该能够使用
filetree.matching()的一些变体
和一个使用
文件的闭包。getlastmodified
对于超过8小时的文件呢?@user311525,这可能很容易做到,不是吗?搜索是你的朋友。@如果你更改答案,包括2小时、1天等的解决方案,也就是一般做法,我会接受它作为答案。