Comment obtenir un verrou exclusif de processus sur un dossier dans Windows?

Est-il possible de verrouiller un répertoire dans Windows afin de s’assurer qu’aucun autre processus ne lit ou ne modifie des fichiers dans le répertoire pendant la durée du verrou, tout en permettant au processus de modifier et de déplacer des fichiers et des répertoires? lui-même librement?

Ce n’est pas une vraie réponse, mais une solution de contournement:

Déplacez le répertoire vers un sous-répertoire spécifique à votre application, qui se trouve sur le même volume.

Avantages:

  • Empêche les utilisateurs et les autres programmes de modifier le fichier à l’ancien emplacement, car les fichiers ne seront plus là
  • Surtout, échouera si un processus a déjà un fichier ouvert dans ce répertoire, assurant ainsi que le verrou “acquis” est bien “exclusif”

Désavantages:

  • C’est un hack
  • Le logiciel devra être adapté pour fonctionner avec le répertoire sur un chemin différent de celui dans lequel il se trouvait initialement.
  • Les utilisateurs et les programmes qui tentent d’accéder aux fichiers rencontreront un comportement ou des erreurs inhabituels (“Path not found” au lieu de “Access denied”)
  • Ne protège pas contre les programmes susceptibles de pénétrer dans votre sous-répertoire spécifique à l’application
  • Laissera le répertoire “verrouillé” (déplacé vers un emplacement que l’utilisateur ne pourra probablement pas trouver) si votre programme plante pendant que le “verrou” est “bloqué”