一种解决方案可能是排序FTPFile[]
按降序排列(假设最后修改时间为上传时间)。
Arrays.sort(ftpfiles, new Comparator<FTPFile>() {
@Override
public int compare(FTPFile o1, FTPFile o2) {
return o2.lastModified().compareTo(o1.lastModified());
}
});
打印最近上传的三个文件(对数组进行排序后)
for (int i = 0; i < 3) {
// amend the output for your needs
System.out.printn(ftpfiles[i]);
}
代码没有经过测试。根据javadoc编写FTPFile https://enterprisedt.com/products/edtftpjssl/doc/api/com/enterprisedt/net/ftp/FTPFile.html.
edit使用免费库版本测试的小片段。
import com.enterprisedt.net.ftp.FTPFile;
...
public static void main(String[] args) throws Exception {
// create an array of dummy files
Calendar cal = GregorianCalendar.getInstance();
FTPFile[] ftpfiles = new FTPFile[5];
cal.set(Calendar.SECOND, 1);
ftpfiles[0] = new FTPFile("raw", "file1", 111, false, cal.getTime());
cal.set(Calendar.SECOND, 5);
ftpfiles[1] = new FTPFile("raw", "file5", 555, false, cal.getTime());
cal.set(Calendar.SECOND, 3);
ftpfiles[2] = new FTPFile("raw", "file3", 333, false, cal.getTime());
cal.set(Calendar.SECOND, 4);
ftpfiles[3] = new FTPFile("raw", "file4", 444, false, cal.getTime());
cal.set(Calendar.SECOND, 2);
ftpfiles[4] = new FTPFile("raw", "file2", 222, false, cal.getTime());
System.out.println("unsorted file list");
for (FTPFile ftpfile : ftpfiles) {
printFileInfo(ftpfile);
}
// sort array by last modification time in descending order
Arrays.sort(ftpfiles, new Comparator<FTPFile>() {
@Override
public int compare(FTPFile o1, FTPFile o2) {
return o2.lastModified().compareTo(o1.lastModified());
}
});
System.out.println("sorted file list");
for (FTPFile ftpfile : ftpfiles) {
printFileInfo(ftpfile);
}
System.out.println("the three recent files only");
for (int i = 0; i < 3; i++) {
printFileInfo(ftpfiles[i]);
}
}
static void printFileInfo(FTPFile ftpfile) {
System.out.printf("name: %s mtime: %s size: %d%n",
ftpfile.getName(),
ftpfile.lastModified(),
ftpfile.size()
);
}
output
unsorted file list
name: file1 mtime: Fri Feb 12 12:23:01 CET 2016 size: 111
name: file5 mtime: Fri Feb 12 12:23:05 CET 2016 size: 555
name: file3 mtime: Fri Feb 12 12:23:03 CET 2016 size: 333
name: file4 mtime: Fri Feb 12 12:23:04 CET 2016 size: 444
name: file2 mtime: Fri Feb 12 12:23:02 CET 2016 size: 222
sorted file list
name: file5 mtime: Fri Feb 12 12:23:05 CET 2016 size: 555
name: file4 mtime: Fri Feb 12 12:23:04 CET 2016 size: 444
name: file3 mtime: Fri Feb 12 12:23:03 CET 2016 size: 333
name: file2 mtime: Fri Feb 12 12:23:02 CET 2016 size: 222
name: file1 mtime: Fri Feb 12 12:23:01 CET 2016 size: 111
the three recent files only
name: file5 mtime: Fri Feb 12 12:23:05 CET 2016 size: 555
name: file4 mtime: Fri Feb 12 12:23:04 CET 2016 size: 444
name: file3 mtime: Fri Feb 12 12:23:03 CET 2016 size: 333