码迷,mamicode.com
首页 > 编程语言 > 详细

file.listFiles()按文件大小、名称、日期排序方法

时间:2017-03-13 13:37:24      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:compare   ati   direct   name   sort   tail   大小   pre   http   

原文地址:http://blog.csdn.net/dezhihuang/article/details/53287602

按照文件大小排序

public static void orderByLength(String fliePath) {
    List<File> files = Arrays.asList(new File(fliePath).listFiles());
    Collections.sort(files, new Comparator<File>() {
        public int compare(File f1, File f2) {
            long diff = f1.length() - f2.length();
            if (diff > 0)
                return 1;
            else if (diff == 0)
                return 0;
            else
                return -1;
        }

        public boolean equals(Object obj) {
            return true;
        }
    });
    for (File f : files) {
        if (f.isDirectory()) continue;
        System.out.println(f.getName() + ":" + f.length());
    }
}

 

按照文件名称排序

public static void orderByName(String fliePath) {
    List files = Arrays.asList(new File(fliePath).listFiles());
    Collections.sort(files, new Comparator<File>() {
        @Override
        public int compare(File o1, File o2) {
            if (o1.isDirectory() && o2.isFile())
                return -1;
            if (o1.isFile() && o2.isDirectory())
                return 1;
            return o1.getName().compareTo(o2.getName());
        }
    });
    for (File f : files) {
        System.out.println(f.getName());
    }
}    

 

按照日期排序

public static void orderByDate(String fliePath) {
    File file = new File(fliePath);
    File[] fs = file.listFiles();
    Arrays.sort(fs, new Comparator<File>() {
        public int compare(File f1, File f2) {
            long diff = f1.lastModified() - f2.lastModified();
            if (diff > 0)
                return 1;
            else if (diff == 0)
                return 0;
            else
                return -1;
        }

        public boolean equals(Object obj) {
            return true;
        }

    });
    for (int i = fs.length - 1; i > -1; i--) {
        System.out.println(fs[i].getName());
        System.out.println(new Date(fs[i].lastModified()));
    }
}

 

file.listFiles()按文件大小、名称、日期排序方法

标签:compare   ati   direct   name   sort   tail   大小   pre   http   

原文地址:http://www.cnblogs.com/anni-qianqian/p/6542128.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!