[.NET2] UTILISER LA COMPRESSION DE FICHIERS NATIVE DE WINDOWS2000/XP

cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 - 2 juin 2006 à 08:16
Baddante Messages postés 33 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 24 février 2008 - 23 août 2006 à 11:17
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/37886-net2-utiliser-la-compression-de-fichiers-native-de-windows2000-xp

Baddante Messages postés 33 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 24 février 2008
23 août 2006 à 11:17
Attention la compression NT est uniquement réservé au stockage sur lecteur NTFS sous WinNT, si on envoi un fichier compressé par réseau ou modem, ou autres, il y a en interne une décompression du fichier puis l'envoi du fichier par le canal de communication choisi. Sur un lecteur de sauvegarde il y a également décompression de fichiers et dossiers NTFS puis le soft de backup vérifie si le lecteur supporte la compression Hardware optionnellement il y activation d'une compression software avant backup.

Pour les modems les réglages inclus nativement des algorithme de compression hard au niveau du modem.
cs_claudetom Messages postés 115 Date d'inscription jeudi 11 octobre 2001 Statut Membre Dernière intervention 15 octobre 2012
23 août 2006 à 00:39
Je trouve le code interessant et pratique pour la gestion d'envoi de multiple fichier d'un pc à un autre via une ligne téléphonique !!
En effet je compresse sur l'ordinateur maitre envoi sur le distant et ensuite décompresse.
En passant vous connaissez un source en VB.NET qui permet de créer une connexion RAS et se connecter avec sans l'utilisation d'une dll externe ?
Merci
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
8 juin 2006 à 08:16
La réponse était donc : dans un but pédagogique, ce n'est pas si anodin que cela, car cela aide à comprendre ta source.
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
7 juin 2006 à 16:55
(je croix que son problème vient de la chaise longue....) pardon
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
7 juin 2006 à 16:24
sa sert à faire parler les bavards....
bref sérieusement, sa ne t'intéresses pas de savoir comment le système tourne, comment utiliser les fonctions de l'API afin de reproduire certaines fonctionnalitées ?

Ce que j'ai présenté c'est ni plus ni moins qu'une démo reproduisant cette case à cocher de compression que tu retrouve dans les propriétés fichiers.
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
7 juin 2006 à 16:02
Je ne vois pas l'intérêt de compresser les fichiers par le code, alors qu'on est plutôt sensé le faire via l'interface de l'explorateur de fichier. A quoi ca sert au juste ?
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
7 juin 2006 à 08:54
pas mal mais si je peux éviter d'utiliser wmi....
et le but premier aussi la grande richesse de DeviceIoControl (présente encore dans ma source sur la réprésentation graphique d'un volume)
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
7 juin 2006 à 07:51
Pas mal ça aussi
Baddante Messages postés 33 Date d'inscription mercredi 1 mars 2006 Statut Membre Dernière intervention 24 février 2008
6 juin 2006 à 18:56
Si ton programme fonctionne sous XP et Win 2000, ont peut utiliser une méthode lié à WMI extrait vbs :
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colFolders = objWMIService.ExecQuery _
("Select * from Win32_Directory where name = 'c:\\Scripts'")
For Each objFolder in colFolders
errResults = objFolder.Compress
' pour décompressé :
errResults = objFolder.Uncompress
Wscript.Echo errResults
Next

Le problème étant d'écrire les "paths" avec un séparateur "\"

Noter que certains fichiers et dossiers "systèmes" sont interdit de compression sous peine de plantage.
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 21
2 juin 2006 à 09:13
Eldim -> C'est vrai pour tester c'est peut etre pas le meilleur moyen de passer par des arguments en paramètres, c'était juste pour tester ma classe.

Patrice99 -> Le but de cette source n'est pas de faire des zip mais bien d'utiliser la compression interne NT de fichiers.
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
2 juin 2006 à 08:38
Malheureusement, on ne peut pas faire un fichier .zip unique avec cette méthode, pour cela voir : VBWinBackup :
www.vbfrance.com/code.aspx?ID=36613
cs_eldim Messages postés 956 Date d'inscription lundi 30 mai 2005 Statut Membre Dernière intervention 21 août 2014 1
2 juin 2006 à 08:16
Salut Willi !

La gestion de la ligne de commande est à revoir car très incommode car trop figée mais l'idée est excellente.