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

Sta*_*ire 6 c unix directory inotify

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

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

asa*_*lic 6

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

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

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

  2. 为每个子目录添加一个监视; 当某些内容被修改或更改后,您可以递归地解析所有子项并查看差异.这里讨论了类似的东西: 如何监控包含所有子文件夹和文件的文件夹?

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

希望能帮助到你!