我正在使用java.io API。以下模式在我的目录中有很多文件。
FilenameFilter fileFilter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.matches(filePrefix+"_.*\\."+fileExt);
}
};
String listFiles [] = dirFile.list(fileFilter);
for(int i = 0 ;i < listFiles.length ; i++){
listOfFiles.add(listFiles[i]);
// need only 10 files to processed
if(i == 10){
break;
}
}
我想知道
list
方法将基于什么进行列出。例如,如果我想进行基于时间的排序-如果我想要10个最旧/最新的文件。我该怎么做。
解决方案:
Arrays.sort(listFiles, new Comparator<File>() {
@Override
public int compare(File f1, File f2) {
return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
}
});
最佳答案
以上仅过滤器。使用File.listFiles()
方法可能会更好,该方法返回一组File
对象(您可以提供一个可选的过滤器,如上所述)。这些对象将具有您想要进一步排序的属性(也许编写自定义Comparator
?)。请参见the doc here和排序教程here。