Copier un fichier verrouillé sous Windows XP
mardi 28 avril 2009 à 12:10
Je suis régulièrement confronté à un foutu problème : XP verrouille des fichiers utilisés par des processus en lecture/écriture et il est impossible d'y accédé même simplement pour en faire une copie. C'est en particulier utile lorsque l'on veut récupérer un fichier temporaire créé par une application et que la-dite application détruit en fin d'utilisation sans en permettre la sauvegarde.
Il y a peut-être plusieurs solutions, mais je viens de tomber sur un utilitaire qui sert initialement d'outils de sauvegarde et qui permet de contourner ce problème : HoboCopy
Livré sous forme de binaire depuis SourceForge, il suffit de décompresser le zip dans un répertoire dédié créé pour l'occasion (au hasard, c:\program files\hobocopy) et il s'utilise ensuite en ligne de commande (il est d'ailleurs plus souple d'ajouter le répertoire dans le PATH histoire de simplifier son usage.
Le petit "a propos" du programme :
HoboCopy (c) 2006 Wangdera Corporation. hobocopy@wangdera.com Usage: hobocopy [/statefile=FILE] [/verbosity=LEVEL] [ /full | /incremental ] [ /clear ] [ /skipdenied ] [ /y ] [ /simulate ] [/recursive] <src> <dest> [<file> [<file> [ ... ] ] Recursively copies a directory tree from <src> to <dest>. /statefile - Specifies a file where information about the copy will be written. This argument is required when /incremental is specified, as the date and time of the last copy is read from this file to determine which files should be copied. /verbosity - Specifies how much information HoboCopy will emit during copy. Legal values are: 0 - almost no information will be emitted. 1 - Only error information will be emitted. 2 - Errors and warnings will be emitted. 3 - Errors, warnings, and some status information will be emitted. 4 - Lots of diagnostic information will be emitted. The default level is 2. /full - Perform a full copy. All files will be copied regardless of modification date. /incremental - Perform an incremental copy. Only files that have changed since the last full copy will be copied. Specifying this switch requires the /statefile switch to be specified, as that's where the date of the last full copy is read from. /clear - Recursively delete the destination directory before copying. HoboCopy will ask for confirmation before deleting unless the /y switch is also specified. /skipdenied - By default, if HoboCopy does not have sufficient privilege to copy a file, the copy will fail with an error. When the /skipdenied switch is specified, permission errors trying to copy a source file result in the file being skipped and the copy continuing. /y - Instructs HoboCopy to proceed as if user answered yes to any confirmation prompts. Use with caution - in combination with the /clear switch, this switch will cause the destination directory to be deleted without confirmation. /simulate - Simulates copy only - no snapshot is taken and no copy is performed. /recursive - Copies subdirectories (including empty ones). Shortcut: /r <src> - The directory to copy (the source directory). <dest> - The directory to copy to (the destination directory). <file> - A file (e.g. foo.txt) or filespec (e.g. *.txt) to copy. Defaults to *.*.
Destiné initialement à la sauvegarde de répertoire complet, la liste des paramètres permet néanmoins de sauvegarder un fichier unique en spécifiant son nom :
"c:\program files\hobocopy\hobocopy.exe" c:\source c:\destination fichier-verrouille.dat
Ce qui donne
HoboCopy (c) 2006 Wangdera Corporation. hobocopy@wangdera.com Starting a full copy from c:\source to c:\destination Copied directory Backup successfully completed. Backup started at 2009-04-27 12:50:49, completed at 2009-04-27 12:52:06. 1 files (586.20 MB, 1 directories) copied, 116 files skipped
Enfantin et tout à fait fonctionnel... En outre, je sens que je vais aussi le tester pour la sauvegarde des photos sur disque externe :-)
Pour les curieux, HoboCopy se base sur Shadow Copy, une possibilité de XP (et des Windows suivant) de créer un image temporaire d'un fichier ou d'un disque et d'en permettre la lecture pendant que les applications accèdent au fichier original.
un commentaire »
Suivez le fil des commentaires en vous abonnant à ce liencheik
Le mardi 30 juin 2009 à 16:48