一尘不染

Linux世界中是否有与.Net FileSystemWatcher等效的文件?

linux

我发现.Net FileSystemWatcher类非常适合编写实用程序,当文件显示在其监视的文件夹中时,这些实用程序会自动启用。*
nix世界中是否有与此功能等效的功能,可以让我监视文件夹(可能还有其所有子目录)?

编辑: 最好是不需要内核补丁的东西。


阅读 157

收藏
2020-06-07

共1个答案

一尘不染

那就是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将退回轮询目录以进行更改,这远非最佳选择。

2020-06-07