我已经编写了一段代码,我打算获取除目录名之外的所有文件(.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());
}
}
但不幸的是,“之前”和“之后”的输出相似。
答案 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