gpt4 book ai didi

java - Groovy 使用递归目录搜索查找文件的最新版本

转载 作者:行者123 更新时间:2023-12-01 12:05:25 36 4
gpt4 key购买 nike

我是 Groovy 新手。我希望能够找到所提供文件的最新版本。我有一个起始文件夹,需要在所有从属文件夹中递归搜索该文件。相同的文件名可以位于多个文件夹中,我的目标是获取最新版本。我认为关键是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")

关于java - Groovy 使用递归目录搜索查找文件的最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27661963/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com