按排序顺序将文件写入目录

时间:2015-05-20 03:19:25

标签: java io sorted

此程序只是按大小对图像文件的文件夹进行排序,并将它们输出到新目录。但是,每当我查看目录时,它都不会按排序顺序进行维护。任何解决方案都是有益的。

以下是相关的代码段

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);
        }

        }

    }

1 个答案:

答案 0 :(得分:3)

  

但是每当我查看目录时,它都不会按排序顺序进行维护。任何解决方案都是有益的。

为什么文件如何存储在目录中可能存在固有顺序,目录查看器将始终使用当前首选项覆盖它(按文件大小排序,按修改日期排序,按字母顺序按名称排序)。

您的代码无效。