这是场景:
我正在编写一个应用程序,它将监视特定目录中的任何更改。该目录每分钟将充斥着数千个文件,每个文件都有一个“几乎”唯一的 GUID。文件格式是这样的:
GUID.dat 其中 GUID == xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (内部内容不相关,只是文本数据)
我的应用程序将是一种表单,其中有一个文本框,可实时显示所有正在添加和删除的文件。每次出现新文件时,我都必须使用该文件更新文本框,但我必须首先确保这个半唯一的 GUID 确实是唯一的,如果是,则使用这个新文件更新文本框。
当文件从该目录中删除时,请确保它存在,然后删除它,并相应地更新文本框。
问题是我一直在使用 .NET filewatcher,似乎有一个内部缓冲区,每次第 (buffersize + 1) 个文件进入时都会被炸毁。我还尝试保留一个内部缓冲区在我的应用程序中列出,只需添加传入的每个文件,但稍后进行唯一 GUID 检查,但没有骰子。
最佳答案
我脑子里有几件事:
- 如果 guid不是唯一的,它是否不会覆盖同名的文件,或者检查是否基于执行某些外部操作的查找(例如检查存档)? (也就是说,这是一个 YAGNI 时刻吗?)
- 我之前使用过 FileSystemWatcher,并取得了相当大的成功,您能给我们一些关于您实际操作方式的想法吗?
- 当您在使用自定义列表时说“不要骰子”时,问题出在哪里?如果没有 FileSystemWatcher,您如何检查文件系统更改?!
抱歉,目前还没有答案,只是想了解更多有关该问题的信息:)
关于.net - 处理文件系统更改的最佳架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941/