此程序只是按大小对图像文件的文件夹进行排序,并将它们输出到新目录。但是,每当我查看目录时,它都不会按排序顺序进行维护。任何解决方案都是有益的。
以下是相关的代码段
class CompareFileSize implements Comparator<File>{
public int compare(File s1, File s2) {
long len1 = s1.length();
long len2 = s2.length();
if (len1 > len2){
return 1;
}else if (len1 < len2){
return -1;
}else
return 0;
}
}
public class FileSorter {
public static void main(String[] args) throws IOException {
File p = new File("C:\\Users\\PC\\Desktop\\newFolder");
File f = new File("C:\\Users\\PC\\Desktop\\oldFolder");
File myPics [] = f.listFiles();
ArrayList<File> aList = new ArrayList<File>();
for (int i = 0; i < myPics.length; i++){
aList.add(myPics[i]);
}
System.out.println("Before----------------------------------------");
for (File uimage: aList){
System.out.println(uimage);
}
System.out.println("After-----------------------------------------");
Collections.sort(aList, new CompareFileSize());
for (File image: aList){
System.out.println(image);
FileUtils.copyFileToDirectory(image, p);
}
}
}
答案 0 :(得分:3)
但是每当我查看目录时,它都不会按排序顺序进行维护。任何解决方案都是有益的。
为什么文件如何存储在目录中可能存在固有顺序,目录查看器将始终使用当前首选项覆盖它(按文件大小排序,按修改日期排序,按字母顺序按名称排序)。
您的代码无效。