我将创建一个比较器,而不是您的“ 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! }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)