如何以FIFO顺序从文件夹轮询文件

时间:2015-10-14 09:35:23

标签: java file java-8 java-7

如何从首先复制/放置的文件夹(“FIFO”顺序)中轮询文件

场景:如果我在文件夹中放置了10个文件。我怎么先进入文件夹(“FIFO”)

2 个答案:

答案 0 :(得分:2)

似乎您想要获取文件并按创建时间对它们进行排序。您可以使用Files.readAttributes(path, BasicFileAttributes.class).creationTime()执行此操作。有关详细信息,请参阅BasicFileAttributes文档。

public Stream<Path> filesByCreation(Path folder) throws IOException {
    return Files.list(folder).sorted(
           Comparator.comparing((Path path) -> {
               try {
                   return Files.readAttributes(path, BasicFileAttributes.class)
                               .creationTime();
               } catch(IOException ex) {
                   throw new UncheckedIOException(ex);
               }
           }));
}

用法:

filesByCreation(Paths.get("/path/to/my/folder")).forEach(System.out::println);

答案 1 :(得分:1)

我会得到一个File :: listFiles(),然后编写一个比较器,根据创建的时间对这些文件进行排序。 可以使用以下文件访问文件时间:Determine file creation date in Java

编辑: 这假定在将文件复制/移动到此文件夹时,不会保留创建/更新的时间戳。