java 判断复制文件完成_java – 如何判断文件何时“完成”复制到监视目录?
时间: 2023-08-20 14:07:25 浏览: 73
要判断文件何时“完成”复制到监视目录,可以使用Java中的文件监视器(WatchService)来实现。具体步骤如下:
1. 创建一个WatchService对象,并将其注册到监视目录上。
```java
WatchService watchService = FileSystems.getDefault().newWatchService();
Path path = Paths.get("监视目录路径");
path.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
```
2. 使用一个线程来监视WatchService对象,并在文件复制完成后进行处理。
```java
while (true) {
WatchKey watchKey = watchService.take();
for (WatchEvent<?> event : watchKey.pollEvents()) {
if (event.kind() == StandardWatchEventKinds.ENTRY_CREATE) {
Path filePath = (Path) event.context();
// 判断文件是否为待复制文件,并且文件大小是否发生变化
if (filePath.toString().equals("待复制文件路径") && Files.size(filePath) == fileSize) {
// 文件复制完成,进行处理
// ...
}
}
}
watchKey.reset();
}
```
其中,fileSize变量为待复制文件的大小,在文件复制开始前记录下来。在监视到文件被创建后,判断文件是否为待复制文件,并且文件大小是否发生变化,如果满足条件,则表示文件复制完成。
注意,文件复制完成时的处理要在监视线程之外进行,否则会影响监视的正常运行。可以将处理放在一个单独的线程中进行。