java - 使用FileSystemProvider实现FTP文件系统

标签 java ftp nio watchservice jsr203

我开发了一个应用程序,可以使用 Java 的 java.nio.file.WatchService 检测文件系统中的更改

在为默认文件系统设置 WatchService 时,这非常有用:

watchService = FileSystems.getDefault().newWatchService();

我现在的用例是扩展此应用程序以监视远程 ftp 服务器上的事件。具体来说,当检测到新文件(ENTRY_CREATE)事件时,获取该文件,然后对其进行处理。

对此进行研究,我相信这就是方法:

  1. 按照 NIO.2 documentation 实现自定义 FTP FileSystemProvider
  2. 为自定义 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/

相关文章:

java - Hazelcast 执行速度较慢

java - Android 数据库应用程序出错

PHP FTP/SFTP 开关类

java - C++中的内存映射文件用Java读取

java - 是否可以将 Process stdout InputStream 读取到 NIO ByteBuffer 中?

java - 在android中创建一个内部文件夹

linux - 如何通过ftp部署nginx?

c - 通过 cURL(或 FTP)将值传递给 C 二进制文件

java - Niolocker - 'filter' 和 'locker' 选项必须出现在提供的外部 'scanner' 上

java - Spring Boot 中的异常处理程序不起作用?