【问题标题】:How to sort file names with its type of file in Java如何在 Java 中根据文件类型对文件名进行排序
【发布时间】:2018-03-07 04:08:59
【问题描述】:

我有一个文件夹,我可以从中获取所有文件列表。

File []filesPaths = filePath.listFiles((dir, name) -> !name.equals(".DS_Store"));

filesPaths 包含所有文件和文件夹的列表,我要对文件进行排序首先和文件夹之后。

【问题讨论】:

标签: java sorting filefilter


【解决方案1】:

要对数组进行排序,请使用Arrays.sort(T[] a, Comparator<? super T> c)

要对目录进行排序最后,通过调用File.isDirectory() 来标识一个目录,如果它是一个目录,则返回true,然后使用Boolean.compare(boolean x, boolean y) 按布尔值排序(false 排序前true)。

使用 Java 8 lambda 表达式,只需一行代码:

// Sort directories last
Arrays.sort(filesPaths, (a,b) -> Boolean.compare(a.isDirectory(), b.isDirectory()));

如果您想首先对目录进行排序,只需将调用中的ab 翻转到compare()

// Sort directories first
Arrays.sort(filesPaths, (a,b) -> Boolean.compare(b.isDirectory(), a.isDirectory()));

【讨论】:

    猜你喜欢
    • 2020-04-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 2012-02-26
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多