如何使用Java中的文件类型对文件名进行排序

时间:2017-09-26 04:38:29

标签: java sorting filefilter

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

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

filesPaths 包含所有文件和文件夹列表,我想先排序文件和文件夹之后。

1 个答案:

答案 0 :(得分:0)

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

要对目录 last 进行排序,请通过调用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()));

如果您想先对目录进行排序,只需在调用a时点击bcompare()

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