VBWinBackup : Sauvegarde d'une arborescence de fichiers

https://codes-sources.commentcamarche.net/source/36613

Documentation : VBWinBackup.html

Code source : VBWinBackup.vbproj.html

Par Patrice Dargenton : patrice.dargenton@free.fr

http://patrice.dargenton.free.fr/CodesSources/index.html

Version 1.04 du 19/10/2008

VBWinBackup fait la même chose que le menu contextuel "Envoyer vers : Dossier compressé" de l'explorateur de fichier (sous Windows XP). Cependant, le moindre fichier en cours d'utilisation (ou bien resté verrouillé à la suite d'un plantage) provoque l'arrêt de la compression via l'explorateur, sans même que Windows ne daigne préciser le fichier en question, ce qui est donc inutilisable sur un grand nombre de fichiers. Au lieu de cela, VBWinBackup propose de réessayer (cela permet par exemple de fermer un fichier Excel ouvert) ou bien d'ignorer le fichier.

Il y a une astuce pour faire un backup (une sauvegarde) complet de Windows permettant une restauration parfaitement valide : il suffit de faire une installation multi-boot sur une autre partition, cela ne pose aucun problème, par exemple avec un Windows XP sur la partition C, et un autre sur la partition D. Ainsi, avec le Windows C, vous pouvez sauvegarder et restaurer le Windows D, et vice-versa, et de plus, vous pouvez restaurer autant d'image de Windows que vous voulez, par exemple un Windows tout neuf (utile pour le test de déploiement de vos logiciels), un Windows neuf mais patché (utile pour repartir sur de bonnes bases), un point de restauration complet (y compris les logiciels installés), un Windows pour le développement de logiciel (utile pour modifier de vieux logiciels, par exemple pour faire un .mde avec Access 2000), pour le développement serveur (SQL Serveur et ASP.Net), un Windows pour VMWare, pour les jeux, pour tester un shareware limité dans le temps ou une version Bêta, pour tester des logiciels à la con, ...

J'ai fait ce logiciel suite au constat que les logiciels de compression gratuits que j'utilise, certains depuis plus de 15 ans, sont tous limités d'une façon ou d'une autre : PKZip25 a quelques bug de compression, InfoZip n'a aucun bug, mais il ne gère pas encore les accents (v5.52), IZArc est très pratique mais limité à quelques milliers de fichiers (insuffisant pour compresser un Windows de développement), et enfin, la gestion des fichiers zip de Windows XP est à la fois la plus pratique, mais de loin la plus boguée de tous ces logiciels, et aussi la plus balourde parfois : impossible par exemple de désactiver la recherche de fichier dans les fichiers zip (la parade consiste à désactiver temporairement la gestion des zip de Windows...), impossible de désactiver l'analyse automatique des fichiers zip présents dans un dossier ouvert dans l'explorateur (résultat : blocage complet de Windows pour plusieurs minutes si vous avez un gros zip sur votre clé USB : la parade consiste alors à mettre toujours le zip dans un sous-dossier), de nombreux bogues de compression et décompression, notamment lors de la modification d'un zip existant (parade : utiliser IZArc dans ce cas !), ...

 

 

Table des matières

Fonctionnalités. 2

Limitations. 2

Exclusions. 3

Documentation. 3

Mode d'emploi 3

Sauvegarde complète de Windows XP. 3

Alternative en cas de blocage. 3

Installation multi-boot 4

Activation de Windows. 4

Gestion des sommes de contrôle. 5

Désactivation de la gestion des zip de Windows. 5

Limitations des autres logiciels de compression. 5

Copier la dll SharpZipLib dans le GAC.. 5

Projets. 6

Version VB8/2005/DotNet2. 6

Version VB6. 6

Historique des versions. 7

Version 1.04 du 19/10/2008. 7

Version 1.03 du 16/12/2007. 7

Version 1.02 du 19/11/2006. 7

Version 1.01 du 19/03/2006 : Première version. 7

Liens. 7

Utilitaires gratuits de compression. 7

Codes sources pour la compression. 7

Codes sources pour la compression (VB6) 8

Codes sources pour la gestion de fichier 8

Codes sources pour la gestion de dossier 9

Fichiers ouverts. 9

Flux cachés. 9

Liens symboliques. 9

Découpeurs de fichiers (FileSplitter) 9

Fichier ISO.. 10

Explorateurs de fichier 10

Inventaire logiciel et matériel (VB6) 10

Gestion d'un lecteur réseau. 10

Gestionnaires de sauvegarde (logiciels de Backup) 10

Récupération de fichiers (Undelete) 11

Voir l'occupation des fichiers par dossier (SpaceMonger like) 11

Machines virtuelles et images systèmes. 11

Divers. 11

 

 

Fonctionnalités

- Nouveau : création possible d'un fichier zip de taille > 2 Go (requiert une version >= 0.85 de SharpZipLib.dll) ;

- Récursivité (compression de tous les sous-dossiers) ;

- Chemin de compression relatif ;

- Conservation des attributs des fichiers et dossiers (requiert une version >= 0.83 de SharpZipLib.dll) ;

- Conservation des dossiers vides ;

- Conservation des accents dans les noms de fichier et dossier ;

- Détection des erreurs (fichiers verrouillés) avec possibilité de réessayer / ignorer / annuler ;

- Exclusion possible des gros fichiers (par exemple > 100 Mo) ;

- Listage des fichiers exclus (gros fichiers, fichiers verrouillés, fichiers temporaires) ;

- Signalement des gros fichiers triés par taille décroissante, ou bien de tous les fichiers par ordre alphabétique ;

- Possibilité de vérification rapide de l'accès aux fichiers sans compression.

 

 

Limitations

- Les caractères unicodes sont interdits dans les noms de fichier ou dossier (par exemple C:\WINDOWS\Web\Wallpaper\Chœur d'étoiles.jpg), il faut dire qu'il faut être un peu débile pour nommer un fichier comme ça ! (le fichier sera transformé en "chour" par VBWinBackup, tandis qu'avec la méthode "Envoyer vers : Dossier compressé", la compression échouera). Le caractère ° est accepté, par exemple dans "Fichier n°1.doc" ;

- L'algorithme de compression est 5% moins performant que celui d'InfoZip, même au niveau max. 9 (tout en utilisant le niveau moyen par défaut d'InfoZip) ; Par ailleurs, 7-Zip compresse de 2 à 4 fois mieux que le format standard du zip, mais avec un format propriétaire ;

- Gestion de l'erreur disque plein, par exemple sur une clé USB : l'erreur est mal traitée, le logiciel plante sans que l'on puisse récupérer l'erreur, et le zip est corrompu (il y a pourtant une gestion d'erreur globale, mais l'erreur semble provoquer un crash au moment de quitter l'application, est-ce une erreur de la plateforme DotNet ?) ;

- Une sauvegarde complète de Windows requiert un multi-boot (à cause des nombreux fichiers verrouillés car en cours d'utilisation).

 

Exclusions

Certains fichiers ne sont pas copiables, on doit les exclure de la sauvegarde :

- Certains fichiers du dossier MachineKeys ne sont pas copiables (à priori cela dépend des logiciels installés). Il contient les certificats machine, il vient avec le SP2 de Windows XP Edition familiale (mais pas avec la version Pro à priori), on peut toutefois alors déplacer le dossier le temps d'une sauvegarde :

  "Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys"

  Dans ce cas de figure, en fait seul l'utilisateur courant du Windows actif peut accéder et donc copier ces clés, et comme VBWinBackUp ne peut compresser Windows qu'en mode multi-boot, il ne peut donc jamais y avoir accès. Solution palliative : faire une copie à part de ce dossier depuis le Windows lié à ces clés (sinon consulter ce lien pour copier ces clés) ;

- Certains fichiers des dossiers de désinstallation ne sont pas copiables : Windows\~NTBackup et $NtUninstallKBxxxxxx$. Ils proviennent surtout du SP2 de Windows XP, ce sont des dossiers permettant d'annuler une installation, ce qui est rarement utile. Si on ne coche pas "Temp.", VBWinBackp exclus ces dossiers automatiquement ;

- Le dossier système de la racine "System Volume Information" n'est pas copiable ;

- S'il y a eu un plantage auparavant, le fichier dump du Dr Watson n'est alors pas copiable (accès refusé au fichier) :

  "C\Documents and Settings\All Users\Application Data\Microsoft\Dr Watson\user.dmp"

 

 

Documentation

Mode d'emploi

Copiez VBWinBackup et sa dll (ICSharpCode.SharpZipLib.dll) dans le dossier à compresser, et lancez, c'est tout !

Si le fichier zip existe déjà, il est entièrement recréé (tous les fichiers compressés sont donc à jour, tous les anciens fichiers compressés sont supprimés).

Sur un poste donné, vous pouvez aussi installer la dll dans le GAC une fois pour toute, ce qui est pratique.

 

Sauvegarde complète de Windows XP

Pour compresser Windows XP, placez VBWinBackup et sa dll n'importe où sur la partition où se trouve le Windows à compresser et cocher Windows XP (le multi-boot est requis). Une sauvegarde complète de Windows XP inclue les dossiers "Program Files", "Windows" et "Documents and Settings".

Les points de restauration de Windows XP se situent dans le dossier système caché "System Volume Information", par conséquent ils ne sont donc pas inclus dans la sauvegarde, de même pour la poubelle avec le dossier "RECYCLER".

Pour réduire la taille de la sauvegarde, VBWinBackup exclu par défaut les fichiers temporaires de Windows XP, ainsi que les fichiers temporaires d'Internet Explorer  :

  "Documents and Settings\xxx\LocalSettings\Temporary Internet Files\*"

Il faut toutefois faire attention car certains logiciels y conservent des fichiers d'installation requis pour la désinstallation, par exemple netfx.msi et langpack.msi pour DotNet, mais à la limite, il suffira de restaurer la sauvegarde adéquate en cas de problème de désinstallation de certains logiciels.

On peut aussi exclure le dossier Windows\SoftwareDistribution du SP2, pour gagner de la  place, mais là aussi certains logiciels risquent de ne plus être désinstallables (voir réparables même), une fois la sauvegarde restaurée.

 

Alternative en cas de blocage

Si vous n'arrivez pas à copier certains fichiers (du DotNet 2 par exemple), vous pouvez toujours utilisez la commande "Envoyer vers : Dossier compressé" de l'explorateur de fichier. Il suffit de tester auparavant avec VBWinBackup quels fichiers sont impossibles à copier, mais il faudra alors les déplacer. Attention dans ce cas à ne pas déplacer ces fichiers dans un dossier dont le chemin serait trop long, car il existe une limite à la longueur maximale des chemins, elle est de 259 caractères. Cela peut survenir notamment pour le contenu des dossiers \LocalSettings\Temporary Internet Files.

 

Installation multi-boot

L'installation multi-boot (amorçage multiple) n'est pas très compliquée, lors de la phase de boot (démarrage) sur le CD de Windows XP, il suffit de ne pas demander une réparation, mais bien une nouvelle installation en appuyant sur la touche Echap, au moment où le message correspondant apparaît ; l'opération ne prend 25 minutes (pensez à choisir un nom d'ordinateur différent, mais on peut aussi le changer après coup). Avec un Windows XP sur C: et un autre sur D:, il n'y a aucun fichier sur la racine du D, et les fichiers de boot (dont boot.ini) sont communs aux 2 Windows sur la racine du C.

 

Notes :

- En multi-boot, il y a des points de restauration indexés indépendamment pour chaque système d'exploitation XP, ils coexistent donc sans risque de collision (il semble quand même que ChkDsk s'emmêle un peu avec le dossier "System Volume Information", car on trouve des erreurs sur C: et pas sur le D: depuis le Windows C alors qu'on en trouve sur le D: et pas sur le C: depuis le Windows D, ce qui n'est pas très cohérent, et il n'est pas possible de corriger ces pseudo-erreurs ; de toute façon, je n'ai pas constaté de problème particulier depuis plus de 6 mois) ;

- Le déplacement des dossiers de Windows est instantané avec Windows XP Pro (en tout cas au début, car ce n'est plus le cas maintenant, plusieurs minutes !), mais prend prêt d'une minute avec la version Home Edition (familiale) : cette manipulation suffit en multi-boot à permuter l'installation de Windows de l'autre partition avec une 3ème installation. Le temps de redémarrer sur l'autre Windows, on peut donc changer de Windows en moins d'une minute ;

- Si vous voulez mixer plusieurs versions de Windows en multi-boot, installez toujours la plus récente en dernier, et faite attention à la restauration, c'est plus délicat (ne pas restaurer la racine : faire une racine valable dans tous les cas).

 

Liens :

www.microsoft.com/windows/multiboot.asp

http://support.microsoft.com/default.aspx?scid=kb;fr;306559

 

Activation de Windows

Attention au nombre maximum d'installation de Windows XP avec la même clé (entre 5 et 10 fois environ, je n'ai pas vraiment compté combien de fois j'ai installé, mais en tout cas j'ai atteint la limite !). Cependant, on peut alors dans ce cas activer par téléphone gratuitement et sans justification à fournir en appelant le serveur vocal ici : 0800 228 482 (n° vert), l'opération prend 5 minutes. Il y a juste un petit hic : cela ne marche qu'une fois ! après il faut se justifier auprès de l'opérateur au bout du fil : "le pilote de ma carte réseau Intel (e100b325.inf version 7.1.12.0) fait des trous au hasard sur mon disque dur (2 réinstallations de Windows avant de comprendre l'origine de la perte aléatoire de fichiers perso et système), en plus j'ai fait un multi-boot, donc double activation à chaque fois, et aussi j'avais acheté auparavant un ordi, installé et activé... et finalement je l'ai rapporté chez le vendeur parce qu'il faisait trop bruit quand je regardais un DVD (oui c'est possible chez planète-saturn, sans plus de justification !)."

 

Notes :

- Finalement, l'activation automatique par serveur vocal a fonctionné une seconde fois ;

- Pour pouvoir faire des tests de déploiement de logiciels, on peut faire par exemple une sauvegarde après chaque grande étape de l'installation ;

- L'activation du Windows D dépend également du disque dur de boot C: : le changement du disque dur principal C: entraîne la désactivation de Windows D, qui doit être refaite dans les 3 jours !!! Le pire, c'est que cela persiste même si on rétablit le matériel ! Cependant, le backup rétabli l'activation ancienne (mais on doit conserver l'ancien matériel de l'activation)... sauf Office XP, qui est définitivement perdu ! il faut alors repartir d'un backup sans Office XP et le réinstaller complètement. Conclusion : ne changez plus de matériel une fois tout installé, ou bien alors réactivez normalement Windows (je n'ai pas testé cette solution) ;

- Evitez le formatage rapide, car il modifie le n° de série du volume, qui est pris en compte par l'activation. D'une manière générale, la restauration d'un backup de Windows doit se faire sur le même matériel, au même endroit (même lettre de partition, même numéro de série). L'activation peut se faire avant l'installation des pilotes ;

- FAQ Activation Microsoft :

  http://support.microsoft.com/default.aspx?scid=kb;fr;302878

- Serveur vocal d'activation Microsoft (n° vert, gratuit aussi sur la FreeBox, de 8h à 22h 7j/7) :

  0 800 228 482, autres numéros utiles :

  www.microsoft.com/france/core/contacteznous/numeroutile.aspx

- Pour générer des clones de poste dans une entreprise, il y a des logiciels dédiés (c'est la masterisation, ou fabrication de CD "master" pour effectuer le clonage des postes), ce n'est pas l'objectif ici avec VBWinBackup.

 

Gestion des sommes de contrôle

La somme de contrôle (ChekSum) permet de vérifier l'intégrité d'un fichier et donc la fiabilité du support de sauvegarde sur lequel il a été copié : clé USB, CD-Rom... : elle fait partie intégrante du format zip, et il n'y a rien de particulier à coder pour obtenir cette fonctionnalité, en tout cas avec SharpZipLib. Dans Windows, la somme de contrôle n'est signalée que d'une façon globale lors de la décompression d'un zip, tandis qu'avec IZArc, on peut savoir précisément, le cas échéant, quel fichier est corrompu (les autres fichiers pouvant être restaurés sans problème).

 

Désactivation de la gestion des zip de Windows

Cette commande évite la pénible analyse automatique des fichiers zip :

regsvr32 /u "c:\windows\system32\zipfldr.dll"

 

Réactivation de la gestion des zip de Windows : simplement faire un double clic sur un fichier zip, ou bien :

regsvr32 "c:\windows\system32\zipfldr.dll"

 

Limitations des autres logiciels de compression

Avec l'explorateur de fichier, le copier/coller conserve les attributs de dossier et fichier dans le zip (mais Windows ne les affiche pas dans le zip), de même que la méthode "Envoyer vers : Dossier compressé", mais lors de la restauration, le copier/coller ne conserve pas les attributs de dossier : il faut utiliser l'assistant pour l'extraction pour que ces attributs soient conservés, sauf la date des dossiers, qui est perdue, ainsi que l'attribut de compression NTFS.

IZArc ne stocke pas les attributs de dossier et ne les restaure pas non plus (si le zip en contient). La date des dossiers est perdue aussi. Cependant, IZArc gère bien les accents, sauf pour les dossiers vides !

Voir aussi : Limitations des autres compresseurs.

A signaler aussi l'excellent 7-Zip, qui est capable de compresser de 2 à 4 fois plus que le zip, ce qui est proprement incroyable, une véritable révolution depuis l'apparition de PKZip en 1993 ! Cependant, les fichiers ainsi compressés ne peuvent être décompressés que via 7-Zip ou IZArc (ce ne sont pas des zip standards).

 

Notes :

- Pour PKZip25, si la taille devient supérieure à 2Go, le mot de passe ne fonctionne pas pour les fichiers qui dépassent la limite ;

- Sur une partition FAT32, la taille des fichiers est limitée à 2 Go.

 

Copier la dll SharpZipLib dans le GAC

Il suffit de taper la commande suivante :

gacutil.exe /i ICSharpCode.SharpZipLib.dll

gacutil.exe se trouve dans le SDK de DotNet :

C:\Program Files\Microsoft.NET\SDK\v1.1\Bin\gacutil.exe

et il faut le lancer via le menu : Démarrer : Programmes : Microsoft Visual Studio .NET 2003 : Outils Visual Studio .NET : Visual Studio .NET 2003 Command Prompt

C'est un des raccourcis installés par VSN2003, qui pointe vers :

"C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"

Si la dll n'est pas trouvée, alors indiquez son chemin complet.

Une fois la dll copiée dans le GAC, il n'est plus nécessaire de la joindre avec l'exécutable VBWinBackup.

Pour retirer la dll du GAC, la syntaxe est différente, car il ne faut pas préciser ni le chemin, ni l'extension .dll :

gacutil.exe /u ICSharpCode.SharpZipLib

Pour savoir par le code si la dll est installée dans le GAC ou pas, il faut tester avec la fonction Reflection.Assembly.LoadWithPartialName et non pas avec LoadFrom, voir ma fonction bDllInstalleeGAC.

 

 

Projets

- Gérer un double % d'avancement comme IZArc : un pour le fichier en cours et un autre pour le total (requiert le parcourt des fichiers au préalable) ;

- Faire une fonction pour décompresser une archive avec les attributs (car Windows ne rétabli pas la date des dossiers) : il y a déjà une fonction bDezipper qui marche, mais elle n'a pas été testée sur de très gros zip (et la restauration des attributs n'a pas été faite) ;

- Faire une hastable des fichiers pour éviter de sauver plusieurs fois le même fichier dans le zip. Pour détecter les doublons probables, il suffit de comparer la taille et la date, puis de vérifier si les fichiers ont la même somme de contrôle (ChekSum). Ensuite, il faudra forcement changer l'extension du fichier zip de manière à traiter la restauration des doublons à leur emplacement respectif via un logiciel dédié : changer l'extension de zip en zop ou n'importe qu'elle nouvelle extension valable pour un fichier de sauvegarde ;

- Gérer les "Alternate Data Streams" : il s'agit de flux média associés à un fichier, des sortes de bout de fichier associé dont Windows indique parfois qu'il seront perdus lorsque l'on copie le fichier principal d'une partition à une autre. Dans ce cas aussi il faudra une extension distincte du zip pour les restaurer ;

- Gérer les erreurs avec ou sans interruption au choix (case à cocher : avec interruption : poser la question, sans interruption : simple rapport d'échec) ;

- Intégrer un FileSplitter (découpeur/recolleur de fichier) pour gérer l'archivage des gros fichiers sur un lecteur externe ;

- Tester mono : on pourrait booter un micro linux du type knoppix sur une clé USB et faire une sauvegarde/restauration de Windows sans avoir besoin de multi-boot !

 

Version VB8/2005/DotNet2

Ca ne marche pas ! l'intérêt d'utiliser la gestion intégrée des zip du FrameWork 2 serait d'éviter de se trimbaler la dll de compression, car une librairie zip est déjà inclue en standard dans la nouvelle plate-forme. Cependant, j'ai bien peur que cela ne soit possible, car dans un article MSDN sur le sujet, il est clairement indiqué que pour compresser des fichiers et non un simple flux, il faut... se rabattre sur la fameuse librairie SharpZipLib !!! (2 solutions possibles : copier la dll dans le GAC, ou intégrer les sources en C# de la dll dans le projet).

 

Version VB6

J'avais commencé une classe VB6 de compression basée sur le code de VBAccelerator, mais je ne l'ai jamais terminée car il y a des limitations : la dll doit être copiée dans le répertoire système de Windows (rédhibitoire !) et les fichiers cachés sont ignorés.

 

Cependant, les exemples fournis en DotNet2 avec la librairie SharpZipLib incluent un wrapper (adaptateur) pour VB6, qui requiert quand même la plateforme DotNet2, mais appelée depuis VB6.

 

 

Historique des versions

 

Version 1.04 du 19/10/2008

- Présentation des fichiers : nouveau tri : par taille dans le sous-dossier (fonctionnalité comme SpaceMonger), menu contextuel pour faire directement le bilan de l'encombrement des dossiers ;

- Case à cocher Sans compression (simple stockage zip rapide) ;

- Correction de bug : utilisation sur la racine d'un lecteur ;

- Correction de bug : la simple énumération de fichier peut échouer (droit de lecture) : try/catch ;

- Passage en VB2008.

 

Version 1.03 du 16/12/2007

- Case à cocher Ignorer les erreurs pour ignorer automatiquement les fichiers inaccessibles (protégés, verrouillés, ...) ;

- Passage en DotNet2 (utilisation de la version DN2 de SharpZipLib : version 0.85.4.369).

 

Version 1.02 du 19/11/2006

- Vérification si la dll SharpZipLib est dans le GAC ou pas ;

- Mise à jour de la librairie SharpZipLib en version 0.85 : il est maintenant possible de créer un fichier zip de taille > 2 Go ;

- Option simple copie de fichier : utile pour sélectionner les fichiers de Windows à compresser via un autre utilitaire (par exemple plus efficace comme 7-Zip).

 

Version 1.01 du 19/03/2006 : Première version

 

 

Liens

 

Utilitaires gratuits de compression

- Librairie SharpZipLib gratuite avec le code source en C#

  www.icsharpcode.net/OpenSource/SharpZipLib

 

IZArc, le plus pratique des zip gratuits

  www.01net.com/telecharger/windows/Utilitaire/compression_et_decompression/fiches/27887.html

 

- 7-Zip, le plus performant des compresseurs gratuits

  www.7-zip.org/fr

 

- Librairie Info-Zip multi-plateforme avec les sources

  www.info-zip.org/pub/infozip/

 

- Les précurseurs du zip

  www.pkware.com

 

Codes sources pour la compression

- Les exemples de programmation du zip en DotNet2 (VB8/2005)

  Compression et cryptage Partie II : Implémentation de la compression et du cryptage des fichiers dans VB6 à l'aide de Microsoft .NET Framework 2

  www.microsoft.com/france/msdn/vbasic/smallandunreadable2.mspx

  Small and Unreadable Part II : Implementing file compression and encryption in VB6 using the Microsoft .NET Framework

  http://msdn.microsoft.com/vbrun/vbfusion/smallandunreadable2

- Compression/décompression d'un seul fichier via la librairie intégrée de compression du DotNet2 : cela fonctionne, mais il ne s'agit pas d'un zip standard, il ne s'agit que d'un flux compressé pour un seul fichier, qui ne peut être décompressé que par la méthode inverse

  http://msdn.microsoft.com/vstudio/downloads/101samples/default.aspx

  \101 Samples\VB101SamplesBCL\Compression\Compression.sln

- Voir aussi l'exemple du SDK du DotNet3 : cette fois il y a les sources pour le ZipEntry, mais le nom du fichier archive est .xip et non .zip et je n'ai pas réussi à le faire fonctionner (de toute façon les sources de SharpZipLib sont fournies)

  C:\Program Files\Microsoft SDKs\Microsoft SDKs\Windows\v6.0\Samples\

  FrameworkSamples\Applications\CompressionSample\VB\CompressionVB.sln

- [.Net2] Utiliser la compression de fichiers native de Windows2000/XP

  www.vbfrance.com/code.aspx?ID=37886

- Compression gzip / zip : utilisation de zlib

  www.cppfrance.com/code.aspx?ID=19614

- [.NET2] Compression/Décompression gzip de fichier grâce à IO.Compression

  www.vbfrance.com/code.aspx?ID=41866

- Décompresser en tâche de fond

  www.codeproject.com/useritems/MassiveUnzip.asp

Steganography 16 - Hiding additional files in a ZIP archive

  www.codeproject.com/csharp/steganodotnet16.asp

www.codeproject.com/vb/net/VB_LZW.asp

www.codeproject.com/cs/files/CABCompressExtract.asp

 

- Autre solution possible pour les zip en DotNet : utiliser la librairie du J#

  (mais il n'est pas sûr qu'elle soit incluse dans le DotNet standard, à prévoir pour la distribution)

  www.codeproject.com/useritems/cpzipstrip2.asp

- Net-2 Compression de fichier en zip avec l'aide de VJ# et en gzip avec l'ajout du nom de fichier

  www.vbfrance.com/code.aspx?ID=43939

 

- Compression / décompression à partir du SDK LZMA de 7zip (multi fichier)

  www.csharpfr.com/code.aspx?ID=43866

- Tous les formats zip

  www.codeproject.com/useritems/Archive_Operations.asp

 

Codes sources pour la compression (VB6)

- Classe zip pour zipper ou dézipper

  www.vbfrance.com/code.aspx?ID=40387

- Zipper un fichier en utilisant la fonction de compression intégrée à Windows XP (shell ?)

  www.vbfrance.com/code.aspx?ID=40998

 

Codes sources pour la gestion de fichier

GetFileSize - Récupérer la taille de fichiers, même > 4 Go

  www.vbfrance.com/code.aspx?ID=38545

 

- Utilisation wmi et win32_logicaldisk

  www.csharpfr.com/code.aspx?ID=41295

- VB6: Récupérer simplement les informations d'un fichier

  www.vbfrance.com/code.aspx?ID=40819

 

- Comment tirer profits des fonctions de ChkDsk (fmifs.dll) sous XP avec du code VB.Net...

  www.vbfrance.com/code.aspx?ID=35536

- Changer le n° de série d'un volume (Win32)

  www.cppfrance.com/code.aspx?ID=19700

 

- Analyse disques et partitions (VB6)

  www.vbfrance.com/code.aspx?ID=43673

- Défragmenter un fichier (VB6)

  www.vbfrance.com/code.aspx?ID=40578

 

www.codeproject.com/cs/files/MassRENAMER.asp

 

Codes sources pour la gestion de dossier

- Jongler avec les dossiers spéciaux (VB6)

  www.vbfrance.com/code.aspx?ID=37719

- Un programme pour personnaliser les dossiers de Windows (VB6)

  www.vbfrance.com/code.aspx?ID=43415

- Gérer les dossiers personnalisés de WinXP (Mes Docs, Mes Images, ...) et en faire des nouveaux

  www.codeproject.com/useritems/CustomizingFolders.asp

 

Fichiers ouverts

- Fermer un fichier ouvert par une autre application (VB6)

  www.vbfrance.com/code.aspx?ID=35142

- Savoir quel fichier est utilisé par telle application : la liste des fichiers ouverts sur le système (pour nt/2k/xp) en VB6 et en C

  www.vbfrance.com/code.aspx?ID=28627 et 36281

- Détecter qui a des fichiers ouverts sur un serveur

  www.codeproject.com/dotnet/OpenFiles.asp

 

Flux cachés

Visual browsing of alternative data-streams in Windows Explorer

  www.codeproject.com/csharp/CsADSDetectorArticle.asp

- A GUI Extension of the NTFS Library written by Richard Deeming

  Find and delete NTFS Alternate Data Streams (ADS) By Marco Roello

  www.codeproject.com/csharp/ntfsguiextension.asp

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/ntfs5.asp

- Les flux cachés dans NTFS (Alternate Data Stream) en VB6

  www.vbfrance.com/code.aspx?ID=39672

- [.NET2] Lecture des flux cachés dans un fichier d'un lecteur NTFS

  www.csharpfr.com/code.aspx?ID=41160

 

- Gestion des mots de passe de Internet Explorer, Outlook Express, MSN Messenger, MSN Explorer, RAS, WMail...en VB.Net... (copie possible des MachineKeys ?)

  www.vbfrance.com/code.aspx?ID=40918

 

Liens symboliques

- Liens symboliques NTFS :

  www.codeproject.com/useritems/JunctionPointsNet.asp

 

- Vista Directory Links in .NET

  www.codeproject.com/useritems/Windows_Vista.asp

 

Reparse Points in Vista

  www.codeproject.com/KB/vista/ReparsePointID.aspx

 

Découpeurs de fichiers (FileSplitter)

FileSplitter, un utilitaire pour découper et joindre des fichiers

  www.csharpfr.com/code.aspx?ID=28107

 

FileSplitter amélioré : www.csharpfr.com/code.aspx?ID=41506

 

The FileSplitter reLoaded

  www.codeproject.com/KB/cs/The_FileSplitter_v2.aspx

 

Fichier ISO

- [.Net2] Créer une image iso à partir d'un disque

  www.vbfrance.com/code.aspx?ID=38076

- Faire fichier iso (Win32)

  www.cppfrance.com/codes/FAIRE-FICHIER-ISO-WIN32_37943.aspx

 

- Fichier image iso 9660 - lecture + extraction du contenu

  www.vbfrance.com/code.aspx?ID=42585 : Version VB.Net de :

  www.csharpfr.com/code.aspx?ID=41503

 

Explorateurs de fichier

www.codeproject.com/cs/miscctrl/FileBrowser.asp

 

- Listez vos fichiers facilement et rapidement (VB6)

  www.vbfrance.com/code.aspx?ID=43640

 

- Gestion de fichier simple

  www.codeproject.com/useritems/File_Copy_Delete_Browser.asp

 

- YommExplorer.Net Explorer / Explorateur de dossiers répertoires fichiers (vrais icônes, menu contextuel, rafraîchissement auto, lien entre arborescence dossiers et liste fichier)

  www.vbfrance.com/code.aspx?ID=42960

 

Inventaire logiciel et matériel (VB6)

www.vbfrance.com/codes/LISTE-SOFT_44358.aspx

www.vbfrance.com/codes/LISTE-HARD_44357.aspx

 

Gestion d'un lecteur réseau

- Lecteur réseau déconnecté (shell) : Mapper un lecteur réseau (connexion et déconnexion)

  www.vbfrance.com/code.aspx?ID=3165

- Mapper un disque réseau

  www.vbfrance.com/code.aspx?ID=40622

- Création et suppression d'un partage réseau par code en C# via WMI

  www.dotnet-project.com/Astuces-creation-et-suppression-d-un-partage-reseau-par-code.50.aspx

 

Gestionnaires de sauvegarde (logiciels de Backup)

- Synchronisation de répertoire

  www.codeproject.com/csharp/SyncToyExec.asp

 

Multithreading Backup Utility

  www.codeproject.com/vb/net/Multithreaded.asp

 

Minimizing the need to restore a backup

  www.codeproject.com/showcase/RedGate_Backup3.asp

  www.codeproject.com/showcase/RedGate_Backups.asp

 

www.codeproject.com/useritems/backupcriticalfiles.asp

www.codeproject.com/useritems/DirectoryCopy.asp

 

Récupération de fichiers (Undelete)

- NTFS Recover : Récupérer les fichiers effacés d'une partition NTFS (en VB6 via une dll)

  www.vbfrance.com/code.aspx?ID=44163

- FAT Recover : Récupérer les fichiers effacés de vos partitions FAT (carte mémoire & co) en VB6

  www.vbfrance.com/code.aspx?ID=44151

 

Voir l'occupation des fichiers par dossier (SpaceMonger like)

SpaceMonger like : http://en.wikipedia.org/wiki/SpaceMonger

WinDirStat : http://windirstat.info

TreeSize Free V2.1 : www.jam-software.com/freeware/index.shtml

- Pour Palm : VFSUsage (v 2.0)

- Pour MacOS + src : Disk Inventory X

 

Machines virtuelles et images systèmes

- Machine virtuelle VMWare gratuite pour lancer des systèmes d'exploitation prêts à l'emploi sans quitter le vôtre

  www.vmware.com/products/player

  Exemple de système d'exploitation prêt à l'emploi : un navigateur FireFox sous Linux

  www.vmware.com/vmtn/vm/browserapp.html

- Création d'une image normalisée pour le déploiement

  www.microsoft.com/france/technet/desktopdeployment/imaging/imagingstep1.mspx

ImageX : utilitaire d'image à la ghost (inclut dans le kit Waik, qui comprend aussi Windows System Image Manager)

Virtual PC 2007 : fourni avec la version pro de Vista

  (limitation : Windows XP home édition non supportée !)

- Voir aussi les logiciels payants : True Image, Norton Ghost ou ImageCast.

 

Divers

- Zip Backup : un fichier batch MS-Dos sous Win32 pour faire des sauvegardes faciles et pratiques

  http://patrice.dargenton.free.fr/divers/zipbackup.html

AutoLogOn Windows XP : Lancer : CONTROL USERPASSWORDS2 et décocher !

AccessBackUp : Un gestionnaire de sauvegarde de base de données Access (ou autre fichier)

  www.vbfrance.com/code.aspx?ID=33732