Est-ce la meilleure façon de gérer le déplacement de fichiers dans un service Windows? nous avons de nombreux fichiers qui sont appariés et déplacés, mais un utilisateur final peut avoir le fichier ouvert au moment du déplacement.Gestion d'un fichier ouvert lors de l'exécution de File.Move()
C'est ce que le code dit actuellement:
Do While IO.File.Exists(OriginalFilePath)
Try
IO.File.Move(OriginalFilePath, BestMatchPath)
Catch ex As IO.IOException
Log(TraceLevel.Warning, "The file '{0}' was unable to be moved (probably opened by someone)", OriginalFilePath)
Threading.Thread.Sleep(1000)
End Try
Loop
Y at-il une meilleure façon de gérer cela? J'ai pensé à l'enfiler pour permettre au processus de continuer, mais actuellement je ne suis pas sûr que ce soit viable, car le reste du processus pourrait avoir besoin du chemin des fichiers pour être précis.
Je ne crois pas qu'un fil de discussion bloquera tout autre processus. – kenny
Je ne pense pas que ce soit ce qu'il voulait dire. Comme implémenté, si un fichier est verrouillé, le service se bloquera complètement (lui-même) et ne traitera aucun autre fichier. – GalacticCowboy