linux - 我们为添加到系统的任何文件向操作系统注册的事件

标签 linux windows macos winapi filesystems

我想处理某些类型的文件,比如说 pdf,每当它们被复制/下载到系统时。

为什么我们可以向操作系统注册以监听此类事件。

如果需要,我准备为 windows、mac 和 linux 实现单独的解决方案。

最佳答案

Windows 有一个文件系统过滤器驱动程序(内核模式驱动程序)的概念。使用它,您的软件可以拦截任何文件系统操作并更改数据或仅执行某些操作(甚至阻止操作)。您可以自己编写此类驱动程序或使用我们的 CallbackFilter包含预先创建的驱动程序并提供用于用户模式的 API 的库。

Windows 上的替代方法是使用 FindFirstChangeNotification注册通知的系统功能。此函数的工作方式与过滤驱动程序不同。

MacOS X 没有过滤器驱动程序的概念,但它们有 FSEvents应用程序接口(interface)。

更新:(错过了 Linux 部分)在 Linux 上 inotify存在。

关于linux - 我们为添加到系统的任何文件向操作系统注册的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21670899/

相关文章:

windows - Excel/VBA Automation Errors due to Office Service Pack 3.0 由 Forms 引起

macos - 非常简单的 OSX bash 脚本 : echo gives no output

objective-c - 在 Windows 中运行 Objective C(通过 XCode 制作)

windows - 是什么导致了不明确的符号错误? C++

windows - 从 Windows 创建一个 unix 符号链接(symbolic link)(最好通过 python)

Distribution.xml 中的 Javascript

c - golang os *File.Readdir 在所有文件上使用 lstat。可以优化吗?

linux - 我是否需要做任何特别的事情才能使用 NPTL(相对于 pthreads)?

linux - 如何在 Debian 8 上安装 Mono 4.0.1?

linux - 在 Linux : different behaviour using "su root -c" 上使用 systemd 启动进程