Я начинающий новичок. Я хотел бы найти самую последнюю версию прилагаемого файла. У меня есть стартовая папка и вам нужно рекурсивно искать этот файл во всех подчиненных папках. Одно и то же имя файла может быть в нескольких папках, и моя цель - захватить самую последнюю версию. Я думаю, что ключ - это eachDirRecurse и eachFileMatch, но не совсем уверен, как собрать их все вместе, чтобы получить самую последнюю версию файла.
предполагая, что вы хотите сравнить последнюю измененную дату файлов с тем же именем: вы используете eachFileRecurse
для итерации всех файлов. затем фильтруйте для того же вопроса. следующий сравните для "тока". например:
// create some test files named 't' in 't[123]' dirs
['t3','t1','t2'].each{
(it as File).with{
new AntBuilder().delete(dir:it) // get rid of existing
mkdir() // create new one
}
new File("$it/t").write "t" // write text file
Thread.sleep(1000) // sleep to have different modification times
}
def hit // the found "current"
def last // the highest "current"
new File(".").eachFileRecurse{
if (it.name=='t') { // check for your filename here
def l = it.lastModified() // your comparsion for "current"; just java API in this case
if (last<l) {
last = l
hit = it
}
}
}
assert hit==new File("./t2/t")