FIleSystemWatcher.Created 它是如何工作的?
FIleSystemWatcher.Created how does it work?
我正在开发一个项目,每次将某些内容添加到特定目录时,该项目都会将文件复制到数据库中。现在,当我使用一小组数据进行测试时,该程序运行良好,但我想知道是否有人可以解释 FileSystemWatcher.Created 事件的工作原理。
我主要担心的是,当我更大规模地使用它时,程序在处理 100,000 多个文件时可能会变慢。
如果这是一个问题,任何人都可以解释是否有某种解决方法来轮询原始文件夹,让我们称之为 "C:\folder",也许轮询临时文件夹。
我没有用 100,000 个文件测试 watcher。但是,在大多数情况下,您不应该在一个文件夹中有这么多文件等待处理。我推荐这样的结构
C:\folder
C:\folder\processing
C:\folder\archive
C:\folder\error
一旦您开始处理给定的文件,就将其移至 processing
。如果处理成功,再次将文件移动到archive
。如果在处理文件时出现错误,请将其移至 error
.
这将使您更轻松地整理文件并诊断生产中出现的问题。
使用该文件结构,您不会 运行 遇到正在观看的文件夹中的大量文件的问题,除非您收到的文件与其移动速度相比难以置信地大进入处理状态
我正在开发一个项目,每次将某些内容添加到特定目录时,该项目都会将文件复制到数据库中。现在,当我使用一小组数据进行测试时,该程序运行良好,但我想知道是否有人可以解释 FileSystemWatcher.Created 事件的工作原理。
我主要担心的是,当我更大规模地使用它时,程序在处理 100,000 多个文件时可能会变慢。
如果这是一个问题,任何人都可以解释是否有某种解决方法来轮询原始文件夹,让我们称之为 "C:\folder",也许轮询临时文件夹。
我没有用 100,000 个文件测试 watcher。但是,在大多数情况下,您不应该在一个文件夹中有这么多文件等待处理。我推荐这样的结构
C:\folder
C:\folder\processing
C:\folder\archive
C:\folder\error
一旦您开始处理给定的文件,就将其移至 processing
。如果处理成功,再次将文件移动到archive
。如果在处理文件时出现错误,请将其移至 error
.
这将使您更轻松地整理文件并诊断生产中出现的问题。
使用该文件结构,您不会 运行 遇到正在观看的文件夹中的大量文件的问题,除非您收到的文件与其移动速度相比难以置信地大进入处理状态