.net - 处理文件系统更改的最佳架构?

标签 .net architecture concurrency filesystemwatcher

这是场景:

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

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

我的应用程序将是一种表单,其中有一个文本框,可实时显示所有正在添加和删除的文件。每次出现新文件时,我都必须使用该文件更新文本框,但我必须首先确保这个半唯一的 GUID 确实是唯一的,如果是,则使用这个新文件更新文本框。

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

问题是我一直在使用 .NET filewatcher,似乎有一个内部缓冲区,每次第 (buffersize + 1) 个文件进入时都会被炸毁。我还尝试保留一个内部缓冲区在我的应用程序中列出,只需添加传入的每个文件,但稍后进行唯一 GUID 检查,但没有骰子。

最佳答案

我脑子里有几件事:

  • 如果 guid是唯一的,它是否不会覆盖同名的文件,或者检查是否基于执行某些外部操作的查找(例如检查存档)? (也就是说,这是一个 YAGNI 时刻吗?)
  • 我之前使用过 FileSystemWatcher,并取得了相当大的成功,您能给我们一些关于您实际操作方式的想法吗?
  • 当您在使用自定义列表时说“不要骰子”时,问题出在哪里?如果没有 FileSystemWatcher,您如何检查文件系统更改?!

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

关于.net - 处理文件系统更改的最佳架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28941/

相关文章:

java - 将任务从 EDT 分派(dispatch)到 main?

ios - iOS 9 上的核心数据并发

.net - .NET 控制台应用程序中的 Thread.CurrentPrincipal

c# - 如何将 PropertyBag 类存储到数据库中

javascript - 在同一页面上集成和通信多个 Angular 应用程序 (SPA)

design-patterns - 实时 Web 应用程序的架构

java - 编写一个有 2 个线程的程序,交替打印

c# - 如何从 Visual Studio 2017 中的 .NET Framework 4.5 控制台应用程序引用 .NET 标准库?

c# - WinForms 数据绑定(bind) - 绑定(bind)到列表中的对象

c# - WPF - 在一段时间内检测鼠标按下