使用Groovy FTP最新文件

Mat*_*att 2 java ftp scripting groovy

我正在使用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()
Run Code Online (Sandbox Code Playgroud)

Opa*_*pal 6

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

FTPFile latest = ftpClient.listFiles().sort { it.getTimestamp().getTime() }.first() //handle NoSuchElementException
Run Code Online (Sandbox Code Playgroud)

要么:

FTPFile latest = ftpClient.listFiles().max { it.getTimestamp().getTime() }
Run Code Online (Sandbox Code Playgroud)

更加时髦:

def latest = ftpClient.listFiles().max { it.timestamp.time }
Run Code Online (Sandbox Code Playgroud)