Groovy найти самую последнюю версию файла с рекурсивным поиском в каталоге

1

Я начинающий новичок. Я хотел бы найти самую последнюю версию прилагаемого файла. У меня есть стартовая папка и вам нужно рекурсивно искать этот файл во всех подчиненных папках. Одно и то же имя файла может быть в нескольких папках, и моя цель - захватить самую последнюю версию. Я думаю, что ключ - это eachDirRecurse и eachFileMatch, но не совсем уверен, как собрать их все вместе, чтобы получить самую последнюю версию файла.

  • 0
    И как вы узнаете версию этого файла?
Теги:
groovy

1 ответ

1

предполагая, что вы хотите сравнить последнюю измененную дату файлов с тем же именем: вы используете 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")

Ещё вопросы

Сообщество Overcoder
Наверх
Меню