3 回答
TA贡献1824条经验 获得超5个赞
File 是一个可比较的类,默认情况下按字典顺序对路径名进行排序。只需使用,
Arrays.sort(fList);
如果你想对它们进行不同的排序,你可以定义你自己的比较器。
TA贡献1869条经验 获得超4个赞
如果你想在树结构中递归地对所有文件路径进行排序,你可以尝试Files.walk使用sortedJava 8 流:
List<String> files = Files.walk(Paths.get("/tmp"))
.filter(Files::isRegularFile) // Check you have only file names
.map(Path::toString) // map to string
.sorted() // sort
.collect(Collectors.toList()); // create list
如果你想要不区分大小写的排序:
List<String> files = Files.walk(Paths.get("d:/tmp"))
.filter(Files::isRegularFile) // Check you have only file names
.map(Path::toString) // map to string
.sorted(Comparator.comparing(String::toLowerCase)) // sort case insensitive
.collect(Collectors.toList()); // create list
TA贡献1877条经验 获得超1个赞
要列出目录和子目录中的所有文件,请使用Apache Commons FilesUtil.listFiles方法
Collection<File> fCollection = FileUtils.listFiles(directory, null, true);
File[] fList = fCollection.toArray(new File[fCollection.size()]);
然后对数组进行排序,您可以使用
Arrays.sort(fList);
添加回答
举报