java:根据创建日期对文件进行排序

我正在尝试根据创建日期读取最新的10个文件。

我尝试了此代码,但是它不能用,我的意思是,每当我添加新文件时,它都不会在输出中显示新文件名。

import java.io.File;

import java.util.Arrays;

import java.util.Comparator;

public class Main {

public static void main(String[] args) {

File inboxDir = new File("D:\\SPOTO");

File[] files = inboxDir.listFiles();

Arrays.sort( files, new Comparator()

{

public int compare(Object o1, Object o2) {

return new Long(((File)o1).lastModified()).compareTo(new Long(((File) o2).lastModified()));

}

});

for(int i=0;i<10;i++)

{

System.out.println(files[i].getName());

}

}

}

我什至尝试了apache commons io,但这也不起作用(这意味着在该目录中创建新文件时,不显示新文件)

import org.apache.commons.io.comparator.LastModifiedFileComparator;

import java.io.File;

import java.util.Arrays;

public class Main {

public static void main(String[] args) {

File dir = new File("c:\\");

File[] files = dir.listFiles();

Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR);

for (int i = 0; i < files.length; i++) {

File file = files[i];

System.out.printf("File %s - %2$tm %2$te,%2$tY%n= ", file.getName(),

file.lastModified());

}

Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE);

for (int i = 0; i < files.length; i++) {

File file = files[i];

System.out.printf("File %s - %2$tm %2$te,%2$tY%n= ", file.getName(),

file.lastModified());

}

}

}

回答:

尝试翻转比较顺序:

return new Long(((File)o2).lastModified()).compareTo(new Long(((File) o1).lastModified()));

这对我来说仅适用于本地测试。

以上是 java:根据创建日期对文件进行排序 的全部内容, 来源链接: utcz.com/qa/422900.html

回到顶部