特定文件夹中文件的排序列表

时间:2017-08-19 07:09:34

标签: java file recursion comparator

我已经编写了一段代码,我打算获取除目录名之外的所有文件(.txt,jpg,.png,.pdf)的列表。事实上,代码应该在每个目录中爬行并给出文件名。我希望文件以有序的方式列出。

class CompareFiles implements Comparator<File>{

    @Override
    public int compare(File arg0, File arg1) {
        return arg0.getName().compareTo(arg1.getName());
    }

}

使用它的类:

public class DirectoryRecursion {

    public static void check(String path) {
        File list = new File(path);
        File[] listOfFile = list.listFiles();
        ArrayList<File> asf = new ArrayList<File>();
        for(File file: listOfFile){
            if(file.isDirectory())
                check(file.getAbsolutePath());
            else                {
                asf.add(file);                  
            }
        }
        System.out.println("Before: ");
        for(File file: asf)
            System.out.println("File: " + file.getName());

        Collections.sort(asf, new CompareFiles());
        System.out.println("Before: ");
        for(File file: asf)
            System.out.println("File: " + file.getName());          
    } 
}

但不幸的是,“之前”和“之后”的输出相似。

1 个答案:

答案 0 :(得分:0)

根据自定义比较器CompareFiles

对样本输出进行排序似乎很好
Before: File: a.bmp File: a.JPG File: b.txt File: c.bmp File: d.txt 
After: File: a.JPG File: a.bmp File: b.txt File: c.bmp File: d.txt

只是为了证明字符串 a.JPG lexicographically greater than the string argument a.bmp

相关问题