如何在 Java 中根据文件类型对文件名进行排序
Posted
技术标签:
【中文标题】如何在 Java 中根据文件类型对文件名进行排序【英文标题】:How to sort file names with its type of file in Java 【发布时间】:2018-03-07 04:08:59 【问题描述】:我有一个文件夹,我可以从中获取所有文件列表。
File []filesPaths = filePath.listFiles((dir, name) -> !name.equals(".DS_Store"));
filesPaths 包含所有文件和文件夹的列表,我要对文件进行排序首先和文件夹之后。
【问题讨论】:
Comparator<File> for "directories-first" order 的可能重复项,甚至 ***.com/questions/32312738/… 都有 Java 8 解决方案。 【参考方案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()));
如果您想首先对目录进行排序,只需将调用中的a
和b
翻转到compare()
:
// Sort directories first
Arrays.sort(filesPaths, (a,b) -> Boolean.compare(b.isDirectory(), a.isDirectory()));
【讨论】:
以上是关于如何在 Java 中根据文件类型对文件名进行排序的主要内容,如果未能解决你的问题,请参考以下文章
根据图像类型对图像进行排序,并使用 typescript 将它们放在相应的文件夹中
如何使用qsort根据字节对包含路径名/文件的char进行排序?
如何使用 xml 配置文件、JAVA、Spring 安全性对 LDAP 用户进行身份验证