我希望我的应用程序能够显示来自远程 FTP(或 SFTP 等)位置的目录列表。当远程目录树中的文件/目录发生更改时,应用程序应使用相关更改更新其视图。
因为遍历整个树既慢又浪费,我想使用类似于 FSEvents 的东西(Linux 上的 inotify/kqueues),但显然这些库是基于文件系统的,与 FTP 服务器的连接是不一样的作为挂载的文件系统。
为了使这些库工作,我需要在本地机器上实际挂载一个由 FTP/SFTP 支持的文件系统,然后将 FSEventStream(或 kqueue 等)附加到这个本地挂载。我知道 FUSE 可以做到这一点,但有什么方法可以让我使用 FUSE 而无需用户先安装它?我的意思是,我可以将它与我的 (Mac) 应用程序捆绑并创建挂载,而无需让用户完成实际运行安装程序包以将 libfuse 和内核模块复制到系统中的过程吗?它是否假设/dev/fuse
存在,或者它可以存在于/dev/
路径之外,在我的应用程序目录中?
Nice Mac 应用程序通过简单的拖放安装,如果可能的话,我想保持这种方式。我不清楚是否可以直接使用 libfuse(只要文件包含在应用程序中),而无需将其安装在系统路径中。
或者,是否有人对通过 FTP 监控更改而不进行轮询有任何其他建议?