如何列出特定目录中的所有新创建的文件?

时间:2015-07-27 08:10:34

标签: java file

列出创建的文件的方法是什么,例如,在两个时间戳之间?我想列出所有新创建的文件,然后将它们移动到另一个目录。

我正在使用Windows

3 个答案:

答案 0 :(得分:3)

public void afterDate() throws IOException {
    final String pathToDirectory = "/path/to/directory";
    final long afterDate = new Date().getTime();
    final List<Path> paths = new ArrayList<>();
    final Path directory = Paths.get(pathToDirectory);
    try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(directory)) {
        for (Path path : directoryStream) {
            final BasicFileAttributes attr = Files.readAttributes(path, BasicFileAttributes.class);
            final long creationTime = attr.creationTime().toMillis();
            if (creationTime >= afterDate) {
                paths.add(path);
            }
        }
    }
    for (final Path path : paths) {
        System.out.println(path.getFileName());
    }

}

答案 1 :(得分:1)

如果您想要主动关注新创建的文件,可以使用WatchService:http://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html

如果您只是在寻找那里的文件,您可以使用Apache Commons FileUtils类'methods列出在两个特定日期之间修改/创建的所有文件。

答案 2 :(得分:1)

逻辑如下

使用文件类。

遍历目录中的所有文件

可以使用 file.listFiles()方法完成。

该方法将返回目录中的所有文件(文件和目录)。

然后,对于每个文件对象,使用 file.lastModified()获取时间戳,然后检查它是否在您指定的时间戳之间

startTimestamp&lt; file.lastModified()&lt; endTimestamp