Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows窗体系统文件监视程序C#_C#_Windows Forms Designer_Filesystemwatcher - Fatal编程技术网

Windows窗体系统文件监视程序C#

Windows窗体系统文件监视程序C#,c#,windows-forms-designer,filesystemwatcher,C#,Windows Forms Designer,Filesystemwatcher,我正在Windows窗体应用程序上使用系统文件监视程序,它应该检测文件夹和子目录中的*.mp4文件,并将名称添加到网格中。我还包括了另一个文件系统监视程序,用于监视另一个文件夹中的*.txt文件 对于一些文件来说,它可以正常工作,但之后就不再工作了 我已将缓冲区增加到最大值,更改了通知过滤器,但在3或4次捕获后,它仍会停止。 我的目标是整天运行应用程序,有没有办法通过编程释放缓冲区?或者还有其他的财产可以帮助你吗 obs:我使用try,所以它不会像大卫在会议上建议的那样重复两次 谢谢。不要使用F

我正在Windows窗体应用程序上使用系统文件监视程序,它应该检测文件夹和子目录中的*.mp4文件,并将名称添加到网格中。我还包括了另一个文件系统监视程序,用于监视另一个文件夹中的*.txt文件

对于一些文件来说,它可以正常工作,但之后就不再工作了

我已将缓冲区增加到最大值,更改了通知过滤器,但在3或4次捕获后,它仍会停止。 我的目标是整天运行应用程序,有没有办法通过编程释放缓冲区?或者还有其他的财产可以帮助你吗

obs:我使用try,所以它不会像大卫在会议上建议的那样重复两次


谢谢。

不要使用FILESYSTEMWATCHER

我经历了很多,我建议你改用计时器(我就是这么做的),它每秒钟或每100毫秒运行一次,观察你的目录中是否有新文件。一旦您在同一时间(数百个)删除了太多文件,FileSystemWatcher就会停止工作,只有在您删除了一个新文件后,它才会恢复正常


使用计时器和字符串列表检查文件何时添加到您的目录中。

能否显示不起作用的代码?@Steve添加到描述中。但您希望处理多少文件?从我可以从文档中删除的内容来看,每个事件需要16个字节加上文件名大小,因此如果我们假设文件名很长,那么平均需要255个字节。这意味着标准8KB缓冲区中有32个事件的空间。如果我们扩展到64KB,那么在开始丢失新事件的跟踪之前,空间足以容纳257个事件。您的文件是否存储在网络驱动器上?我有一个问题,我在史提夫解释过大约4个文件一次max,这不是真的。我第一次与FSWATHER我也认为不可靠,如果在下一个测试中仍然失败,我将按照你的计时器解决方案。非常感谢。
   try
      {
        fSW_Finalizados.EnableRaisingEvents = false;
        FoundFile(e.FullPath);
      }
      finally
      {
        fSW_Finalizados.EnableRaisingEvents = true;
      }