首先,我想首先使用 inotify 来监视文件和子目录的特定目录(主目录)。如果将新目录添加到此主目录中,我将如何确保使用 inotify 监视此子目录?我将如何监视主目录的这个子目录中的新目录?
我认为使用该inotify_add_watch()
功能很容易将其添加到手表中,但我不知道如何在子目录中获取文件和目录的正确相对路径地址(用于在不同位置进行类似 Dropbox 的同步,同时保持例如,正确的目录树)。
那么最快的实施(但不是现实中最快的)将是:
通过递归探索子目录创建初始目录树;可以在此处找到 C/Linux 中的示例:
为每个子目录添加一个监视;当某些内容被修改或更改时,您可以递归地解析所有子项并查看差异。这里讨论了类似的事情: 如何监视包含所有子文件夹和文件的文件夹?
如果此解决方案对您没有吸引力,您可能会尝试执行轮询机制,以便您必须以特定时间间隔使用线程重新检查整个结构。
希望能帮助到你!