我正在学习如何使用新的 C++ 文件系统库,并且我已经看到了如何实现文件夹监视器的示例,它可以做三件简单的事情:检测文件创建;文件修改;和文件删除。它通过在每个设定的时间段(例如 1000 毫秒)搜索整个文件夹来工作,并根据您自己的代码保存的另一条记录(例如 unordered_map/hash 表)检查文件系统中的每个文件条目,以便每次记录更新 查询文件系统以获取文件夹中每个文件的名称,然后在现有文件的记录中搜索此名称。这发生在文件夹中的文件数量上。
我想知道是否有更有效的方法来处理这个问题,例如将操作系统检测到的每个修改添加到数组或排队,这样每次监视器更新时,它只会检查是否有任何内容已放置在此数组中以获取文件创建,删除或修改,而不是检查文件系统中每个文件与文件记录之间的差异。