【发布时间】:2016-08-17 11:55:13
【问题描述】:
我正在编写一个应用程序,我必须在其中检测目录中的文件更改。新文件、丢失文件等。每次扫描都相对于前一次。
我目前正在进行递归扫描以检索所有路径并与我数据库中的前一个列表进行比较。这样做的问题是某些客户端需要扫描数百万个文件。这使得系统消耗大量资源(cpu 和内存)。我什至收到了SystemOutOfMemory 异常。
所以我想知道是否有更好的方法来查找这些更改,可能不需要完整扫描。
重要提示:我无法“监控”事件,因为无论系统是否正在运行,我都必须检测扫描之间发生的变化。我不能失去任何改变。因此,除非它能够捕获在未运行时所做的更改我不能为此使用 FileSystemWatcher。
【问题讨论】:
-
@YeldarKurmangaliyev 在最后一段中,我解释说我无法监控更改,因为系统可能不会一直运行。
-
FileSystemWatcher 对我的用例来说不够可靠。我不能错过任何改变。
标签: c# file directory filesystems