java:根据创建日期对文件进行排序 [英] java : Sort Files based on Creation Date

查看:212
本文介绍了java:根据创建日期对文件进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试根据创建日期阅读最新的10个文件。

I am trying to read the latest 10 files based on their creation date .

我尝试使用此代码,但它不起作用,我的意思是,它我添加新文件时,不会在输出中显示新文件名。

I tried with this code , but it isn't working , i mean , it doesn't show the new file names in the output when ever i add new files .

import java.io.File;
import java.util.Arrays;
import java.util.Comparator;

public class Main {
    public static void main(String[] args) {
        File inboxDir = new File("D:\\SPOTO");
        File[] files = inboxDir.listFiles();
        Arrays.sort( files, new Comparator()
        {
        public int compare(Object o1, Object o2) {
        return new Long(((File)o1).lastModified()).compareTo(new Long(((File) o2).lastModified()));
        }

        });


        for(int i=0;i<10;i++)
        {
            System.out.println(files[i].getName());
        }


    }
}



<我甚至尝试使用apache commons io,但这也不起作用(当在该目录中创建新文件时,Means不显示新文件)

I even tried with apache commons io , but that isn't working either ( Means doesn't show new files when new files are created in that directory )

这是我的Apache commons io版本

import org.apache.commons.io.comparator.LastModifiedFileComparator;

import java.io.File;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        File dir = new File("c:\\");
        File[] files = dir.listFiles();

        Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_COMPARATOR);
        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            System.out.printf("File %s - %2$tm %2$te,%2$tY%n= ", file.getName(),
                    file.lastModified());
        }

        Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE);
        for (int i = 0; i < files.length; i++) {
            File file = files[i];
            System.out.printf("File %s - %2$tm %2$te,%2$tY%n= ", file.getName(),
                    file.lastModified());
        }
    }
}


推荐答案

尝试翻转比较顺序:

return new Long(((File)o2).lastModified()).compareTo(new Long(((File) o1).lastModified()));

这适用于我刚才在本地测试。

This works for me testing locally just now.

这篇关于java:根据创建日期对文件进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆