我正在学习如何使用新的C++文件系统库,并且我已经看到了如何实现文件夹监视器的示例,该监视器可以做三件简单的事情:检测文件创建、文件修改和文件删除。它的工作方式是每隔一段时间搜索整个文件夹,例如1000毫秒,并检查文件系统中的每个文件条目与您自己的代码保存的另一个记录,例如unordered_map/hash表,这样每次更新记录时,文件系统都会被查询以获取文件夹中每个文件的名称,然后在现有文件的记录中搜索此名称。当文件夹中的文件数达到一定数量时,会发生这种情况。
我想知道是否有更有效的方法来处理这个问题,比如将操作系统检测到的每个修改添加到一个数组或队列中,这样每次您的监视器更新时,它只会检查是否在这个数组中放置了用于创建、删除或修改文件的内容,而不是检查文件系统中每个文件与您的文件记录之间的差异。
发布于 2020-10-04 21:08:32
事实证明,我提到的方法是一个轮询方法,而我正在寻找一个基于事件的方法,以便在发生任何更改时通知您。然而,这些似乎是平台相关的。
https://stackoverflow.com/questions/62496949
复制相似问题