美文网首页
java 仿windows文件排序

java 仿windows文件排序

作者: Yechom | 来源:发表于2020-06-10 10:06 被阅读0次
    public class FileSortUtils {
    
        public static void main(String[] args) {
            File file = new File("F:\\file");
            List<File> list = Arrays.asList(file.listFiles());
            list.forEach(f -> System.out.println(f.getName()));
            System.out.println("----------");
            List<File> sort = sort(list);
            sort.forEach(f -> System.out.println(f.getName()));
        }
    
        public static List<File> sort(List<File> list) {
            List<File> sortFile = new ArrayList<>();
            //文件夹集合
            List<File> folderList = list.stream().filter(file -> file.isDirectory()).collect(Collectors.toList());
            //文件集合
            List<File> fileList = list.stream().filter(file -> file.isFile()).collect(Collectors.toList());
            //文件夹排序
            Collections.sort(folderList, new Comparator<File>() {
                @Override
                public int compare(File o1, File o2) {
                    Comparator comparator = Collator.getInstance(Locale.CHINA);
                    return comparator.compare(o1.getName(),o2.getName());
                }
            });
            //文件排序
            Collections.sort(fileList, new Comparator<File>() {
                @Override
                public int compare(File o1, File o2) {
                    Comparator comparator = Collator.getInstance(Locale.CHINA);
                    return comparator.compare(o1.getName(),o2.getName());
                }
            });
            //合并
            sortFile.addAll(folderList);
            sortFile.addAll(fileList);
            return sortFile;
        }
    }
    

    示例:


    result.jpg

    相关文章

      网友评论

          本文标题:java 仿windows文件排序

          本文链接:https://www.haomeiwen.com/subject/mzdutktx.html