Java 如何按FIFO顺序从文件夹轮询文件
如何从最先复制/放置的文件夹中轮询文件(“FIFO”顺序)Java 如何按FIFO顺序从文件夹轮询文件,java,file,java-8,java-7,Java,File,Java 8,Java 7,如何从最先复制/放置的文件夹中轮询文件(“FIFO”顺序) 场景:如果我在文件夹中放置了10个文件。如何获取首先进入文件夹(“FIFO”)我将获取一个文件::listFiles(),然后编写一个比较器,根据创建的时间对这些文件进行排序。 可以使用以下方法访问文件时间: 编辑: 这假设在将文件复制/移动到此文件夹时,创建/更新的时间戳不会保留 似乎您希望获取文件并按创建时间对其进行排序。您可以使用Files.readAttributes(path,BasicFileAttributes.class
场景:如果我在文件夹中放置了10个文件。如何获取首先进入文件夹(“FIFO”)我将获取一个文件::listFiles(),然后编写一个比较器,根据创建的时间对这些文件进行排序。 可以使用以下方法访问文件时间: 编辑:
这假设在将文件复制/移动到此文件夹时,创建/更新的时间戳不会保留 似乎您希望获取文件并按创建时间对其进行排序。您可以使用
Files.readAttributes(path,BasicFileAttributes.class).creationTime()执行此操作。
。有关详细信息,请参阅文档
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);
}
}));
}
请注意,在linux上。您可能希望在某些元文件或文件名中编码该信息,或者考虑使用其他时间之一,例如上次修改。
filesByCreation(Paths.get("/path/to/my/folder")).forEach(System.out::println);