映射网络驱动器上的FileSystemWatcher

Jes*_*ess 6 c# filesystemwatcher exception-handling mapped-drive

在实施FSW以监视映射的网络驱动器时,是否应考虑特殊注意事项(权限除外).如果驱动器失去连接,FSW会抛出异常吗?如果不是(或者如果我只是捕获/处理该异常),那么轮询DirectoryInfo.Exists属性以验证连接是否足够?

Jal*_*aid 6

好吧,我用它FileSystemWatcher监视网络中另一台计算机上存在的共享文件夹,这是我的经验:

  1. 您可以通过File.Exists或检查连接Folder.Exists.
  2. FileSystemWatcher,如果你失去了连接该共享文件夹不会抛出异常.相反,每当连接丢失时,您将收到以下错误消息:" 指定的网络名称不再可用 ".当你得到这个错误时,FSW将不再处理任何数据,即使重新建立连接,这样处理FileSystemWatcher.Error事件,如果引发的错误,恢复EnableRaisingEventstrue一次,或重新初始化FSW

  • 我用我正在使用的FSW遇到了同样的问题.但是,至少在.NET 4中,我发现分享后我需要做的就是将`EnableRaisingEvents`设置为`false`(实际上是在FSW_Error处理程序中执行此操作)然后当共享回来时设置` EnableRaisingEvents`为'true`.它开始重新开始活动. (3认同)