c#FileSystemWatcher以某种方式停止观看网络文件夹

时间:2015-11-05 17:35:12

标签: c# service filesystemwatcher

我有一个用c#开发的处理器,作为一项服务运行,设置为在网络上查看任何使用* .req扩展创建的文件的文件夹,该文件通常可以正常工作,但偶尔会停止一段时间通常观看因为网络文件夹所在的服务器重启或其他什么。虽然我有一个任务调度程序,它会在每天午夜自动重启这个程序,但是如果长时间没有任何事情发生,我有什么方法可以更好地确定如何重新开始观看?这是我的源代码段,因为即使错误处理似乎也没有触发。

        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = GlobalVars.REQpath;  // ie. \\fmserv\reqfolder\
        // Only watch *.req files.
        watcher.Filter = "*.req";
        watcher.Created += new FileSystemEventHandler(OnCreated);
        watcher.Error += new ErrorEventHandler(OnError);

        // Begin watching.
        watcher.EnableRaisingEvents = true;
//
// more code here...
//
    private static void OnError(object source, ErrorEventArgs e)
    {
        if (e.GetException().GetType() == typeof(InternalBufferOverflowException))
        {
            logWriteLine(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + ": Error: File System Watcher internal buffer overflow");
        }
        else
        {
            logWriteLine(DateTime.Now.ToString("MM/dd/yyyy HH:mm:ss") + ": Error: Watched directory not accessible");
        }
        ((FileSystemWatcher)source).EnableRaisingEvents = false;
        //service should automatically restart application
        //System.Windows.Forms.Application.Exit();
        //System.Windows.Forms.Application.Restart();   // service automatically restart?

    }

0 个答案:

没有答案