【发布时间】:2020-05-27 12:53:04
【问题描述】:
我在 Windows 窗体应用程序上使用系统文件监视程序,它应该检测文件夹和子目录中的 *.mp4 文件并将名称添加到网格中。我还包括另一个文件系统观察程序来监视另一个文件夹中的 *.txt 文件。
它适用于几个文件,但不再适用。
我已将缓冲区增加到最大值,更改了通知过滤器,但仍然在 3 或 4 次捕获后停止。 我的目标是整天运行应用程序,有没有办法以编程方式释放缓冲区?或者是否有其他属性可以提供帮助?
obs:我使用 try 所以它不会执行两次,正如 David 在 https://stackoverflow.com/a/2780832/8684048
建议的那样 try
{
fSW_Finalizados.EnableRaisingEvents = false;
FoundFile(e.FullPath);
}
finally
{
fSW_Finalizados.EnableRaisingEvents = true;
}
谢谢。
【问题讨论】:
-
你能显示不工作的代码吗?
-
@Steve 添加到说明中。
-
但是您希望处理多少个文件?从我可以从文档中推断出,每个事件都需要 16 个字节加上文件名大小,所以如果我们假设文件名很长,我们平均需要 255 个字节。这意味着标准 8KB 缓冲区中有 32 个事件的空间。如果我们扩展到 64KB,那么在开始松散跟踪新事件之前,空间足以容纳 257 个事件。
-
您的文件是否存储在网络驱动器上?我遇到了我在emoreau.com/Entries/Articles/2005/04/… 中解释过的问题
-
@Steve 一次最多 4 个文件,真的不多。
标签: c# windows-forms-designer filesystemwatcher