Je souhaite conserver un verrou exclusif sur un fichier afin qu'il ne puisse être lu ou écrit par rien d'autre. Existe-t-il un outil ou une commande Windows simple pour le faire?
Je suppose que l'outil ou l'utilitaire implémenterait la fonction LockFileEx Windows.
Note : J'ai essayé des éditeurs de texte tels que Notepad et Notepad ++ sur un fichier texte, mais ils ne disposent pas d'un verrou exclusif sur celui-ci.
Essayez Easy File Locker (freeware).
Solution plus simple: dans le répertoire d’intérêt, depuis la ligne de commande:
notepad >filetolock
En tant que stdout redirigé, il restera verrouillé jusqu'à ce que l'application (le bloc-notes) soit terminée.
Notez que le "filetolock" sera écrasé par le ré-acheminement, vous ne souhaiterez donc probablement pas utiliser un fichier existant d’une importance quelconque. Un "filetolock" vide n'aura pas d'importance pour l'application que vous essayez de tester, car l'application ne pourra pas l'ouvrir de toute façon.
Verrouiller un fichier sans outils tiers _, aucune modification apportée au fichier étant verrouillé et le fichier ne peut même pas être copié _
Ce script PowerShell est une citation d'une réponse à une question similaire.
Si vous le jugez utile, vous pouvez voter la réponse originale et non cette publication.
#Specify the file name
$fileName = "C:\myfile.txt"
#Open the file in read only mode, without sharing (I.e., locked as requested)
$file = [System.io.File]::Open($fileName, 'Open', 'Read', 'None')
#Wait in the above (file locked) state until the user presses a key
Write-Host "Press any key to continue ..."
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
#Close the file
$file.Close()
Ouvrez-le avec MS-Excel ... cette application verrouille un fichier lorsqu'elle est ouverte.
FileLocker est un outil de ligne de commande gratuit/open source.
Usage:
FileLocker [/T LockTime] [/I] [/K] [/Q] file [file...]
/T LockTime Time in milliseconds to lock the file
/I Infinite locking until process is killed (default)
/K Lock file until key is pressed
/Q Be quiet.
Je ne peux pas écrire de commentaires, alors j'ajoute mes informations de cette façon:
EDIT: résumé de l'autre question:
commande de pause: ( >&2 pause ) >> file2lock.txt
Les programmes MS tels que Word ou Excel verrouillent aussi (fonctionne pour les fichiers texte)
Utiliser par programme LockFileEx
(API Windows) avec LOCKFILE_EXCLUSIVE_LOCK
et LOCKFILE_FAIL_IMMEDIATELY
Voici comment je réplique le comportement de l'utilisateur d'un fichier verrouillé pour le test de bogues.
Dim s As New StreamReader ("C:\test\sampleFile.txt")
J'ajoute cette ligne à mon test unitaire pour verrouiller le fichier, puis je l'exécute en mode débogage pour répliquer le comportement incorrect lorsqu'un fichier donné est verrouillé.
Je ne sais toujours pas comment les utilisateurs de mon entreprise verrouillent le fichier en question. Comme vous l'avez dit, le bloc-notes ne peut pas le verrouiller exclusivement.
Heureusement, la déclaration d'un lecteur de flux verrouille un fichier exclusivement, sauf indication contraire de votre part.