我想根據創建日期來讀取最新的10個文件。java:根據創建日期對文件進行排序
我試過這段代碼,但它不工作,我的意思是,當我添加新文件時,它不會在輸出中顯示新的文件名。
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公地IO,但不工作或者(指不顯示新的文件時,在該目錄中創建新文件)
這是我的Apache公地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());
}
}
}
您確定「D:\\ SPOTO」中有文件嗎? .listfiles()不遞歸遍歷子目錄。 – aglassman 2012-04-20 16:31:39