2008-11-11 12 views

Répondre

7

Vous devez vous reconnecter à FileSystemWatcher. Rendez votre variable de type FileSystemWatcher globale à votre classe, ajoutez l'événement WatcherError.

Dans la méthode, ajouter quelque chose comme ça:

private static void WatcherError(object source, ErrorEventArgs e) 
    { 
    watcher = new FileSystemWatcher();//You might want to do a method and to setup all config... 
    while (!watcher.EnableRaisingEvents) 
    { 
     try 
     { 
      watcher = new FileSystemWatcher();//You might want to do a method and to setup all config... 
     } 
     catch 
     { 
      System.Threading.Thread.Sleep(30000); //Wait for retry 30 sec. 
     } 
    } 
    } 

Vous ne voulez pas utiliser watcher = new ... vous préférez avoir une méthode qui ajoutera tous les événements et la configuration du chemin, mais la Le code ci-dessus vous donne une bonne idée de ce qu'il faut faire.

+0

Ce code n'est pas fiable, car FileSystemWatcher ne se déclenche pas toujours. Événement d'erreur lorsque le dossier réseau ou le lecteur est surveillé. – Tomas

+0

Lorsque le réseau est arrêté, une erreur s'affiche. Quelle est la situation où ce n'est pas fiable? –

+0

Si FileSystemWatcher est utilisé pour surveiller le dossier réseau, l'erreur FileSystemWatcher.Error n'est pas toujours déclenchée en cas de problème avec le réseau. Ce problème est connu et votre code ne sera pas exécuté. – Tomas