【问题标题】:Sort a List of File对文件列表进行排序
【发布时间】:2018-07-03 19:59:58
【问题描述】:

Java中如何列出多个目录的文件?

这就是我尝试过的:

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
所以我想,它的作用是将每个文件夹的所有文件按正确的顺序排列,但不是所有文件放在一起。
我怎样才能做到这一点?

【问题讨论】:

    标签: java file for-loop arraylist directory


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-04-23
        • 2011-08-25
        • 1970-01-01
        • 2014-06-21
        • 1970-01-01
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 2018-07-01
        相关资源
        最近更新 更多