列出创建的文件的方法是什么,例如,在两个时间戳之间?我想列出所有新创建的文件,然后将它们移动到另一个目录。
我正在使用Windows
答案 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 强>