Comment puis-je le faire fonctionner dans un réseau? Cela fonctionne alors ça arrête de fonctionner sans raison (peut-être parce que le réseau n'est pas parfait).FileSystemWatcher et déconnexion réseau?
6
A
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.
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
Lorsque le réseau est arrêté, une erreur s'affiche. Quelle est la situation où ce n'est pas fiable? –
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