从ftp获取最新文件

从ftp获取最新文件,第1张

从ftp获取最新文件

我将创建一个比较器,而不是您的“ lastFileModified”方法。编写sort方法会更容易:

public class LastModifiedComparator implements Comparator<FTPFile> {    public int compare(FTPFile f1, FTPFile f2) {        return f1.getTimestamp().compareTo(f2.getTimeStamp());    }}

然后,获取“最后一个” FTPFile要容易得多:

public FTPFile getMaxLastModified(FTPFile[] ftpFiles) {    return Collections.max(Arrays.asList(ftpFiles), new LastModifiedComparator());}

回到您的问题:“ lastModified”时间戳未链接到FTP上传顺序。通过FTP协议上传文件时,文件的原始时间戳可能会保留。

因此,如果file1早于file2,即使在FTP服务器上file2在file1之前上传,您的方法也将始终返回file2。

我认为无法确定最后上传的文件。FTP协议不存储此信息。仅当您重载FTP客户端的“ put”方法时,您才能这样做:

public void put(File file) {    // upload pre    FTPFile ftpFile = getJustUploadedFile(file);    ftpFile.setTimestamp(new Calendar()); // Now! }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5105228.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存