首先,我想首先使用inotify来监视文件和子目录的特定目录(主目录)。如果将新目录添加到此主目录中,我如何确保使用inotify监视此子目录?我如何监视主目录的这个子目录中的新目录?
我认为使用inotify_add_watch()
函数将其添加到手表很容易,但我不知道如何在子目录中获取文件和目录的正确相对路径地址(用于类似Dropbox的例如,在保持正确的目录树的同时在不同的位置同步。
答案 0 :(得分:6)
实施最快(但实际上不是最快)将是:
通过递归探索子项来创建目录的初始树;可以在此处找到C / Linux中的示例:
为每个子目录添加一个监视;当某些内容被修改或更改后,您可以递归地解析所有子项并查看差异。这里讨论了类似的东西: How to monitor a folder with all subfolders and files inside?
如果此解决方案不适合您,您可能会尝试执行轮询机制,以便必须使用某个时间间隔的线程重新检查整个结构。
希望它有所帮助!