Java 使用Groovy来FTP最新文件

Java 使用Groovy来FTP最新文件,java,groovy,scripting,ftp,Java,Groovy,Scripting,Ftp,我正在使用Groovy编写一个脚本,它将连接到FTP并将最新的文件下载到本地计算机上,以对数据执行额外的工作 我正试图使用FTPClient&FTPFile来实现这一点,但不太确定如何选择最新的文件 我已经设法让它连接到FTP并返回到目前为止的文件列表 //Retrieve latest file from FTP FTPClient ftpClient = new FTPClient() ftpClient.connect('xxxx.xxxxxxx.xxx') ftpClient.login

我正在使用Groovy编写一个脚本,它将连接到FTP并将最新的文件下载到本地计算机上,以对数据执行额外的工作

我正试图使用FTPClient&FTPFile来实现这一点,但不太确定如何选择最新的文件

我已经设法让它连接到FTP并返回到目前为止的文件列表

//Retrieve latest file from FTP
FTPClient ftpClient = new FTPClient()
ftpClient.connect('xxxx.xxxxxxx.xxx')
ftpClient.login("xxxxxxxx", "xxxxxx")

FTPFile[] files = ftpClient.listFiles()
for (FTPFile file : files) {
    println(file.getName())
}

ftpClient.logout()
ftpClient.disconnect()

据我所知,您正在使用ApacheCommonsNet。您可以按时间戳对文件进行排序,只需选择集合的最后一个元素

FTPFile latest = ftpClient.listFiles().sort { it.getTimestamp().getTime() }.first() //handle NoSuchElementException
或:

更常规:

def latest = ftpClient.listFiles().max { it.timestamp.time }

这正是我需要的!谢谢你@Opal!
def latest = ftpClient.listFiles().max { it.timestamp.time }