.net 处理文件系统更改的最佳体系结构?

.net 处理文件系统更改的最佳体系结构?,.net,architecture,concurrency,filesystemwatcher,.net,Architecture,Concurrency,Filesystemwatcher,以下是场景: 我正在编写一个应用程序,它将监视特定目录中的任何更改。该目录每分钟将充满数千个文件,每个文件都具有“几乎”唯一的GUID。文件格式如下: GUID.dat,其中GUID==xxxxxxxxxxxxxxxxxxxxxxxxxxxx (内部内容不相关,但只是文本数据) 我的应用程序将是一个表单,它有一个文本框,显示实时添加和删除的所有文件。每次传入新文件时,我都必须使用此文件更新文本框,但我必须首先确保此半唯一GUID确实是唯一的,如果是,请使用此新文件更新文本框 从该目录中删除文件时

以下是场景:

我正在编写一个应用程序,它将监视特定目录中的任何更改。该目录每分钟将充满数千个文件,每个文件都具有“几乎”唯一的GUID。文件格式如下:

GUID.dat,其中GUID==xxxxxxxxxxxxxxxxxxxxxxxxxxxx (内部内容不相关,但只是文本数据)

我的应用程序将是一个表单,它有一个文本框,显示实时添加和删除的所有文件。每次传入新文件时,我都必须使用此文件更新文本框,但我必须首先确保此半唯一GUID确实是唯一的,如果是,请使用此新文件更新文本框

从该目录中删除文件时,请确保该文件存在,然后将其删除,并相应地更新文本框


问题是我一直在使用.NET filewatcher,似乎每次(buffersize+1)第个文件进入时都会有一个内部缓冲区被破坏。我还尝试在我的应用程序中保留一个内部列表,只添加每个文件,但稍后进行唯一的GUID检查,但不做任何改动。

我脑子里有几件事:

  • 如果guid不唯一,它是否会用相同的名称覆盖文件,或者检查是否基于执行某些外部操作(例如检查存档)的查找?(即,这是雅格尼时刻吗?)
  • 我以前使用过FileSystemWatcher,非常成功,您能告诉我们您的实际操作方法吗
  • 当你在使用自定义列表时说“不掷骰子”时,问题出在哪里?在没有FileSystemWatcher的情况下,您是如何检查文件系统更改的

很抱歉,目前还没有答案,只是想了解更多关于这个问题的信息:)

我建议您查看API调用,它可以通知您所有类型的shell事件。要监视文件创建和删除活动,您可能需要特别注意SHCNE_CREATE和SHCNE_DELETE参数