Gradle:删除超过某个时间的文件
我有一个gradle任务,删除与名称中的特定模式匹配的文件:Gradle:删除超过某个时间的文件,gradle,Gradle,我有一个gradle任务,删除与名称中的特定模式匹配的文件: task deleteTempFiles(type: Delete) { tasks['clean'].dependsOn(it) delete fileTree(dir: '..', include: '**/tempfile*.tmp') } 我想删除超过2小时或24小时的文件。这件事可能需要两天时间。在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天等的解决方案,也就是一般做法,我会接受它作为答案。