java:根据创建日期对文件进行排序
我正在尝试根据创建日期读取最新的10个文件 我试过使用这段代码,但它不起作用,我的意思是,当我添加新文件时,它不会在输出中显示新文件名java:根据创建日期对文件进行排序,java,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:\\SPO
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());
}
}
}
导入java.io.File;
导入java.util.array;
导入java.util.Comparator;
公共班机{
公共静态void main(字符串[]args){
File inboxDir=新文件(“D:\\SPOTO”);
File[]files=inboxDir.listFiles();
Arrays.sort(文件,新的Comparator()
{
公共整数比较(对象o1、对象o2){
返回new Long(((文件)o1.lastModified()).compareTo(new Long((文件)o2.lastModified());
}
});
对于(int i=0;i,至少在常规Java版本中,您以错误的(升序)顺序比较文件。我将结果乘以-1,首先看到的是最新的文件:
return -1* (new Long(((File)o1).lastModified()).compareTo(new Long(((File) o2).lastModified())));
使用时间戳,较大的对应于较新的文件。尝试翻转比较顺序:
return new Long(((File)o2).lastModified()).compareTo(new Long(((File) o1).lastModified()));
这对我刚刚进行的本地测试有效。您确定“D:\\SPOTO”中有文件吗?listfiles()不会递归遍历子目录。正确进行比较似乎比乘法更清晰:/n这是最快的尝试方法。Comparator要求返回整数。
return new Long(((File)o2).lastModified()).compareTo(new Long(((File) o1).lastModified()));