我如何(递归?)使用inotify监视新目录的内容?

时间:2013-11-12 15:43:22

标签: c unix directory inotify

首先,我想首先使用inotify来监视文件和子目录的特定目录(主目录)。如果将新目录添加到此主目录中,我如何确保使用inotify监视此子目录?我如何监视主目录的这个子目录中的新目录?

我认为使用inotify_add_watch()函数将其添加到手表很容易,但我不知道如何在子目录中获取文件和目录的正确相对路径地址(用于类似Dropbox的例如,在保持正确的目录树的同时在不同的位置同步。

1 个答案:

答案 0 :(得分:6)

实施最快(但实际上不是最快)将是:

  1. 通过递归探索子项来创建目录的初始树;可以在此处找到C / Linux中的示例:

    http://www.lemoda.net/c/recursive-directory/

  2. 为每个子目录添加一个监视;当某些内容被修改或更改后,您可以递归地解析所有子项并查看差异。这里讨论了类似的东西: How to monitor a folder with all subfolders and files inside?

  3. 如果此解决方案不适合您,您可能会尝试执行轮询机制,以便必须使用某个时间间隔的线程重新检查整个结构。

  4. 希望它有所帮助!