排序文件列表

时间:2018-01-24 17:15:34

标签: java file for-loop arraylist directory

如何在Java中列出多个directorys的文件?

那是我尝试过的:

ArrayList<File> files = new ArrayList<File>();
for(int x = 0; x < directorys.length; x++) {
    if(directorys[x].isDirectory()) {
        files.addAll(Arrays.asList(directorys[x].listFiles(filter)));
    } 
}

这种方法很有效,但问题是,它并没有将文件整合为完全按字母顺序排列。
它不是......像这样:(第一个文件夹)1,3,5,(第二个文件夹)2,4,6 。但我希望它像这样: 1,2,3,4,5,6
所以我猜,它的作用是,它将每个文件夹的所有文件都按正确顺序排列,但不是所有文件都在一起。
我怎么能做到这一点?

2 个答案:

答案 0 :(得分:1)

您可以使用比较器进行排序:

files.sort((a,b)-> a.getName().compareTo(b.getName()));

答案 1 :(得分:1)

您可以在循环之后对文件列表进行排序,如下所示

files.sort(Comparator.comparing(File::getName));