gpt4 book ai didi

java - Folder Watcher 在 JDK 7 中如何工作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:56:32 25 4
gpt4 key购买 nike

我正在开发 Java 应用程序,我需要查看文件夹中是否出现新文件或新文件夹。我的问题是 Folder Watcher 仅监听文件夹树中第一级的修改,我需要查看是否在树结构的所有子文件夹中创建了新文件夹。我的想法是将文件夹观察器放在我所有的子文件夹上。我不知道这有多有效,因为我不知道是什么原因导致文件被创建|删除|修改。我希望操作系统发出一个事件信号,即在文件系统中创建了一个新文件,这会以某种方式对 JVM 进行一些调用。我的猜测正确吗?因为我需要一种有效的方法来知道在我的文件夹结构中创建了一个文件。

最佳答案

JavaDoc of WatchService是这样说的:

The implementation that observes events from the file system is intended to map directly on to the native file event notification facility where available, or to use a primitive mechanism, such as polling, when a native facility is not available.

换句话说:如果操作系统提供了一种有效的方式来实现它,那么虚拟机应该使用这种方式,如果操作系统不提供这样的方式,那么更简单(但更昂贵)的轮询机制是用过。

话虽这么说,大多数现代操作系统确实具有必要的文件监视 API,但它们的具体实现有所不同。有些允许观察整个子树,而另一些只观察一层深度(就像 Java API 所做的那样)。这可能也是为什么 WatcherService 默认只监视一层深度的原因。

关于java - Folder Watcher 在 JDK 7 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11667743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com