【问题标题】:Java : How to get the latest (last modified) directory in a path [closed]Java:如何获取路径中的最新(最后修改)目录[关闭]
【发布时间】:2015-05-22 09:00:54
【问题描述】:

我有一个要求,我需要在路径中获取最新(最后修改的)目录/文件夹。

我为目录中的文件找到了类似的解决方案,但没有为路径中的目录找到类似的解决方案。

【问题讨论】:

  • 你能把你试过的代码和你面临的问题吗?
  • 我已经成功获取到上次修改目录的时间了:public static void getLastModifiedDir(){`File file = new File("file path");``System.out.println("last已修改:" + ` `new Date(file.lastModified()));` //below code works only for files not for folders ` File[] files = file.listFiles();` ` if (files.length == 0) {` ` }` @ 987654323@
  • Stack Overflow 用于询问有关特定编程问题的特定问题。这不是一个“gimmeh-teh-codez”网站。预计问题将展示您已尝试过的内容并解释它为什么不起作用(其结果与您的预期结果有何不同)。这个问题只是对您的预期目标的解释,但这里没有代码。您遇到的实际问题是什么?请编辑您的问题以提高其质量。

标签: java file-io directory


【解决方案1】:

下面找一个小sn-p作为例子。需要添加适当的异常和错误处理。

public class LastModifiedDir {

    public static void main(String[] args) {
        final String filesLocation = "... your directory to check ...";

        Path path = Paths.get(filesLocation);

        List<Path> dirs = new ArrayList<>();

        try (DirectoryStream<Path> dirStream = Files.newDirectoryStream(path)) {
            for (Path entry : dirStream) {
                if (Files.isDirectory(entry, LinkOption.NOFOLLOW_LINKS)) {
                    dirs.add(entry);
                }
            }
            Collections.sort(dirs, ComparatorReverseLastModificationTime());

            System.out.println("recently changed directory: " + dirs.get(0));
        } catch (IOException e) {
            // add your exception handling here
            e.printStackTrace(System.err);
        }
    }

    static Comparator<Path> ComparatorReverseLastModificationTime() {
        return new Comparator<Path>() {

            @Override
            public int compare(Path o1, Path o2) {
                int compareTo = 0;
                try {
                    compareTo = Files.getLastModifiedTime(o1, LinkOption.NOFOLLOW_LINKS).compareTo(Files.getLastModifiedTime(o2, LinkOption.NOFOLLOW_LINKS));
                } catch (IOException ex) {
                    // proper exception handling must go here
                    ex.printStackTrace(System.err);
                }
                return -compareTo;
            }
        };
    }
}

【讨论】:

    【解决方案2】:

    看看org.apache.commons.io.FileUtils.listFilesAndDirs(),然后迭代列表并按file.lastModified排序。

    【讨论】:

      猜你喜欢
      • 2011-02-25
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2019-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多