我寫了一段代碼,我打算獲取除目錄名以外的所有文件(.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());
}
}
但不幸的是輸出兩個「之前」和「之後」是類似的。
可能你可以分享預期和實際產出的樣本,並提供輸入。 – nullpointer
除了你的System.out.println()之後的排序 - 應該說System.out.println(「After:」) - 而不是「之前」,這應該工作... – user681574
哎呀第二秒之前是應該是「之後」,但我的代碼沒有按要求工作。 – Shailja