1
我是Groovy新手。我希望能夠找到提供的文件的最新版本。我有一個起始文件夾,需要在所有從屬文件夾中遞歸搜索該文件。相同的文件名可以在多個文件夾中,我的目標是獲取最新版本。我認爲關鍵是eachDirRecurse和eachFileMatch,但不太清楚如何將它們放在一起以獲得最新版本的文件。Groovy通過遞歸目錄搜索找到最新版本的文件
我是Groovy新手。我希望能夠找到提供的文件的最新版本。我有一個起始文件夾,需要在所有從屬文件夾中遞歸搜索該文件。相同的文件名可以在多個文件夾中,我的目標是獲取最新版本。我認爲關鍵是eachDirRecurse和eachFileMatch,但不太清楚如何將它們放在一起以獲得最新版本的文件。Groovy通過遞歸目錄搜索找到最新版本的文件
假設您想使用相同名稱比較文件的上次修改日期:使用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")
而你如何識別該文件的一個版本? – fge