小编典典

如何根据名称,大小和最后修改时间对目录列表进行排序?

java

我只是想弄清楚如何根据名称,上次修改时间和大小对目录列表进行排序。我知道您可以访问文件的名称,大小,最后使用File方法修改的时间,但是我不确定如何对其进行排序。如果有人能指出我正确的方向,那就太好了。

public void printDirectoryContents(String path, PrintWriter writer)
{
    File[] list = root.listFiles();
    Arrays.sort(list);

    for ( File f : list )
    {           
        String name = f.getName();
        long lastmod = f.lastModified();
        SimpleDateFormat simple = new SimpleDateFormat("dd-MMM-yyyy HH:mm");
        String formatted = simple.format(new Date(lastmod));
        long length = f.length();

    }
}

阅读 262

收藏
2020-11-30

共1个答案

小编典典

您应该实现一个Comparator来根据您提到的属性对文件进行排序,并将其作为参数传递给Arrays.sort方法。

    Arrays.sort(list, new Comparator<File>()
    {
        public int compare(File file1, File file2)
        {
            int result = ...
            .... comparison logic
            return result;
        }
    });
2020-11-30