给定路径得到本路径下文件夹以及所有文件的列表排序问题

2015年01月12日 其他资源 4条评论 阅读2186次

给定路径得到本路径下文件夹以及所有文件的列表排序问题

本文主要解决的是排序问题:也就是给定路径下要求,文件夹在前文件在后,并且按照数字字母先后顺序排列

private List<File> getFileList(String path) {

        final String ROOT = Environment.getExternalStorageDirectory()
                .toString();
        List<File> fileList = new ArrayList<File>();

        File topFile = new File(path);
        for (File file : topFile.listFiles()) {
            fileList.add(file);
        }

        Collections.sort(fileList, 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;
                }
                // 同为文件或同为文件夹,a-z、0-9的顺序排列
                // 因为compareTo是按照ASCII码排序,所以忽略大小写,统一用小写字母
                return -(o2.getName().toLowerCase().compareTo(o1.getName()
                        .toLowerCase()));
            }
        });

        if (path != ROOT) {
            // if the current path is not ROOT_PATH, add ../ at the first
            fileList.add(0, new File(path).getParentFile());
        }

        return fileList;
    }
分享本文至:

WRITTEN BY

avatar
本文标签:排序sort
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

4 条评论

  1. avatar 王语双

    外行路过,留一爪印,闪人。

  2. avatar 威客

    现在做安卓的越来越多

  3. avatar Han

    安卓主流现在已成定局

欢迎留言




用户登录

sitemap