我开发了一个应用程序,可以使用 Java 的 java.nio.file.WatchService
检测文件系统中的更改
在为默认文件系统设置 WatchService 时,这非常有用:
watchService = FileSystems.getDefault().newWatchService();
我现在的用例是扩展此应用程序以监视远程 ftp 服务器上的事件。具体来说,当检测到新文件(ENTRY_CREATE)事件时,获取该文件,然后对其进行处理。
对此进行研究,我相信这就是方法:
- 按照 NIO.2 documentation 实现自定义 FTP FileSystemProvider
- 为自定义 FTP FileSystemProvider 实现 WatchService
总的来说,这种方法看起来正确吗?
其次,任何教程或实现的链接都会非常有帮助。
谢谢!
最佳答案
谷歌“Java ftp watchservice”看看其他人做了什么。
例如,请参阅https://github.com/fge/java7-fs-ftp
请注意,watchservice 将需要最终轮询远程服务器。另请注意,FTP 不允许您查找文件(与 HTTP 范围功能不同),因此如果有人以非连续顺序请求文件中的 block ,则不会顺利进行。
您可以实现代理服务器并检测代理的其他用户所做的更改,而无需轮询。或者,如果您操作 FTP 服务器站点,则可以实现直接在远程文件系统上运行并提供通知的 FTP 服务器。
关于java - 使用FileSystemProvider实现FTP文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40950559/