Java WatchService 是 Java NIO 包中的一个类,用于监视文件系统的变化。当文件或目录在指定的路径下发生变化时,WatchService 可以检测到并触发相应的事件。
要找到创建文件的目录,可以通过以下步骤实现:
Path directory = Paths.get("要监视的路径");
WatchService watchService = FileSystems.getDefault().newWatchService();
directory.register(watchService, StandardWatchEventKinds.ENTRY_CREATE);
while (true) {
WatchKey key;
try {
key = watchService.take();
} catch (InterruptedException e) {
e.printStackTrace();
return;
}
for (WatchEvent<?> event : key.pollEvents()) {
WatchEvent.Kind<?> kind = event.kind();
// 处理创建文件事件
if (kind == StandardWatchEventKinds.ENTRY_CREATE) {
Path createdFile = (Path) event.context();
Path parentDirectory = directory.resolve(createdFile).getParent();
System.out.println("文件创建:" + parentDirectory);
}
}
boolean valid = key.reset();
if (!valid) {
break;
}
}
event.context()
获取创建的文件名,然后使用 directory.resolve(createdFile).getParent()
获取文件的父目录路径。这样,当有文件在指定的路径下被创建时,会打印出文件所在的目录路径。
对于 Java WatchService 的更多信息和使用示例,可以参考腾讯云对象存储 COS 的文档: Java WatchService 监听文件变化
领取专属 10元无门槛券
手把手带您无忧上云