文件系统观察在网络

文件系统观察在网络

问题描述:

我使用独立的应用程序vb.net(2.0),并使用filesysystem观察家类找到任何新的XML进入该指定的目录,然后应用程序采取的文件,并继续该过程,但direcotry已经位于网络机器,文件系统观察在网络

现在我的问题是

一旦路径不存在,它指的是共享路径服务器进入离线,然后我的应用程序不intemate我,我怎么能恰克我的代码,

任何一个有想法,请分享给我

在此先感谢 Nanda.A

+0

什么样的应用,这是?一个需要用户输入,或者需要运行而无需人工干预? – AlexCuse 2010-01-07 18:11:16

您需要检查您的网络共享的可用性。仅供参考:Determining if file exists using c# and resolving UNC path

如果您正在侦听目录上的更改并且它变得不可用(如重新启动的服务器),FileSystemWatcher将抛出异常。它提供了一个你可以听的OnError event,你可以决定如何处理这个问题。

我有一个运行多个监视器的应用程序,当一个错误应用程序将通过循环每30秒尝试再次连接来处理错误。它也保持连续尝试连接的次数不成功并最终放弃(大约一小时后)。

下面是VB.Net的总体思路:

''' <summary> 
''' This event is called when an error occurs with the file watcher. Most likely the directory being watched is no longer available (probably from a server reboot.) 
''' </summary> 
Protected Sub Scan_Error(ByVal Source As FileSystemWatcher, ByVal E As ErrorEventArgs) 

    '// Stop listening 
    Source.EnableRaisingEvents = False 

    '// Maximum attempts before shutting down (one hour) 
    Dim Max_Attempts As Integer = 120 
    Dim Timeout As Integer = 30000 
    Dim I As Integer = 0 

    '// Attempt to listen - if fail, wait and try again in 30 seconds. 
    While Source.EnableRaisingEvents = False And I < Max_Attempts 
     I += 1 

     Try 
      Source.EnableRaisingEvents = True 
     Catch 
      Source.EnableRaisingEvents = False 
      System.Threading.Thread.Sleep(Timeout) 
     End Try 
    End While 
End Sub