我发现.Net FileSystemWatcher类非常适合编写实用程序,当文件显示在其监视的文件夹中时,这些实用程序会自动启用。* nix世界中是否有与此功能等效的功能,可以让我监视文件夹(可能还有其所有子目录)?
编辑: 最好是不需要内核补丁的东西。
那就是Gamin文件变更监视器或Inotify。
编辑:Mono确实具有Gamin绑定-实际上,其FileSystemWatcher的实现使用Gamin。https://www.mono- project.com/docs/faq/technical/#what-are-the-issues-with- filesystemwatcher。
FileSystemWatcher有什么问题? FileSystemWatcher的Mono实现具有许多后端,其中最理想的是后端,而依赖关系较少的是inotify-backend(在Mono 1.1.17和更高版本中可用)。 通过此后端,内核为Mono提供了文件系统上文件更改的更新,但它需要启用inotify的内核,只有较新的Linux发行版才能提供该内核。 在较旧的Linux系统中,您必须已安装FAM或Gamin(它将与任何一种一起使用)。您可能需要安装-devel数据包。 对于* BSD系列,有一个基于Kqueue的实现,在运行时检测到该实现。 如果以上方法均无效,Mono将退回轮询目录以进行更改,这远非最佳选择。
FileSystemWatcher有什么问题?
FileSystemWatcher的Mono实现具有许多后端,其中最理想的是后端,而依赖关系较少的是inotify-backend(在Mono 1.1.17和更高版本中可用)。
通过此后端,内核为Mono提供了文件系统上文件更改的更新,但它需要启用inotify的内核,只有较新的Linux发行版才能提供该内核。
在较旧的Linux系统中,您必须已安装FAM或Gamin(它将与任何一种一起使用)。您可能需要安装-devel数据包。
对于* BSD系列,有一个基于Kqueue的实现,在运行时检测到该实现。
如果以上方法均无效,Mono将退回轮询目录以进行更改,这远非最佳选择。