问题标签 [watchservice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java nio WatchService:查看 Windows 驱动器列表
我想在连接 USB 驱动器时收到通知。所以java sais:“驱动器H:创建”。有没有办法用 WatchService 做到这一点?观看根目录不起作用。它只是监视当前驱动器的根目录: Paths.get("/").register
java - Java 7 WatchService 释放资源
我正在使用 Java 7 WatchService 来监视目录。我不断更改我正在观看的目录。我遇到了异常:
java.io.IOException:已达到网络 BIOS 命令限制。
在 50 个目录之后。我确定在创建新的 WatchService 之前,我会在创建的每个 WatchService 上调用 close() 。
有谁知道释放 WatchService 的正确方法,这样你就不会遇到这个限制?
谢谢,
戴夫
java - Java7:创建新的非空目录时检测所有文件
我正在实现一个 WatchDog 以递归方式查找文件更改、删除和添加到目录中,我使用的是 linux。该程序运行良好,使用 Java7 执行此操作非常简单,唯一的问题是当我添加一个包含一些文件的目录时,我无法监控所有包含文件的添加。我认为问题在于,当我添加一个新目录时,WatchDog 必须将其注册到 WatchService,同时添加的一些文件会丢失(通常是一两个)。WatchDog 是一个线程,它将每个 updateEvent 放入一个由另一个线程读取的阻塞队列中。
这是看门狗: http: //pastebin.com/q5SW0iJF
有没有人遇到过同样的问题,如果有,你是怎么解决的?
谢谢
java - 使用 Java WatchService 监视文件夹中的文件夹
我正在尝试使用 Java 7 的 WatchService 来监控文件夹。我希望它监视添加到使用 WatchService 注册的路径的任何文件或文件夹。
如果我将一个文件夹添加到注册路径,它会正确地将其检测为 ENTRY_CREATE 并在 watchEvent.context() 中返回该文件夹的名称。但是,如果我将一个文件夹添加到该文件夹而不是再次检测到它,但 watchEvent.context() 返回相同的文件夹和 ENTRY_MODIFY,因为该文件夹已通过添加另一个文件夹进行了修改。
所以我理解这一点,但不知道我是否应该注册结构中的每个文件夹,或者只注册顶级文件夹并监听或创建和修改
java - Windows 上的 Java WatchService 在复制内容之前通知文件夹创建
我正在尝试使用 Java 7 和 WatchService 来监视何时将文件夹添加到文件夹中(通过从不同位置复制),然后我想对新创建的文件夹中的文件进行操作。
在 OSX 上,它按我的预期工作,在复制文件夹及其内容之前,我不会收到新文件夹创建的通知。但是在 Windows 上,我在文件夹的内容被复制之前收到了关于文件夹创建的关键事件,所以当我尝试处理文件夹中的文件时,那里不存在,通常只有第一个文件在那里。
我目前的解决方法是在收到文件夹通知后,我睡了 10 秒钟以等待其中的文件被复制,但这不是很令人满意,因为文件夹的大小可能会有很大差异,所以我睡眠时间不够长或时间太长大多数时候。
为什么 OSX 和 Windows 之间存在差异,如何解决我在 Windows 上的问题?
java-7 - 当注册目录位于网络驱动器上时,Java 7 WatchService 不会生成事件
我知道这是在一年前在其他地方被问到的,但我正在寻找任何更新。
我在 Java 7 中有一个程序,它使用 WatchService 来监视一个目录以查找在那里创建的新文件。如果我在本地机器上注册一个目录(例如 c:\NewFiles),那么一切都很好。但是,当我尝试让它收听网络驱动器上的文件夹时,它会编译并运行,但会立即退出,因为它似乎没有收到任何事件的通知......这只是我的代码片段......
我注册目录...
然后在检查事件的循环结束时......
在这里,我总是收到“驱动器无法访问”警告。我尝试将我的 Java 文件复制到这个网络目录并从那里运行它们,但我遇到了同样的问题。
是否可以从本地机器上运行这样的 Watchservice 来监听网络驱动器上目录的更改?我在这里遇到权限或防火墙问题吗?我使用的是 Windows 7,并且很可能网络驱动器也在 Windows 7 机器上。
java - 为什么使用 WatchService 检测文件更改会有延迟?(爪哇)
我有一个应用程序,当将文件添加到目录时,WatchService 会检测到该文件并将该文件添加到文件列表中以进行进一步处理。这是我的代码
此代码按预期工作,但我正在设计一个高性能应用程序,它以非常高的速度处理文件中的数据。所以这里的问题是检测文件所用的时间不一致。例如,最初目录中有一些文件,它们由应用程序处理,现在当添加新文件时,检测文件需要 4-5 秒,有时需要 2 秒或 20 毫秒等。我的 eofDelay 值为 10 毫秒。这种不一致的原因是什么?有没有办法增强这个实现?或者任何其他可用于目录更改的高效库?我希望检测文件所花费的时间最少且一致,花费一秒钟以上的时间非常昂贵。在这方面的任何帮助将不胜感激。:)
java - Java WatchService ..监听网络上的目录
我正在尝试listen to directories
通过网络 [All on Windows] 获取//Create
事件。它似乎不适用于网络上的目录。Modify
Delete
WatchService
任何第三方图书馆或任何替代品都将受到高度赞赏。
映射网络驱动器对我来说不是一个选项,因为我有50 多个目录要收听。
java - 使用 JSCH 和 WatchService 监控远程 SFTP 服务器的新文件
我目前正在使用 JSCH 来实现 SFTP 客户端。这对我现在的目的很有效,但是在研究WatchService
另一个项目时,我想知道是否可以使用 JSCH 实现它来监视 SFTP 服务器中的新文件。
我怀疑现在不可能,因为 WatchService 需要一个 Watchable 对象来操作,据我所知,JSCH 没有以任何方式实现 Watchable。
鉴于上述限制,是否有人对此有任何经验或想法如何实现?
java - 从 WatchEvent 确定已删除文件的类型
我有一个监视, AND事件WatchService
的目录树。问题是 a 的上下文只给出了一个 Path 对象。在删除事件中,我不确定路径是否引用了常规文件的目录。ENTRY_CREATE
ENTRY_DELETE
ENTRY-MODIFY
WatchEvent<?>
我的问题是如何确定路径是否p
引用了已删除的文件或目录?API公开的内容甚至可能吗?