Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMPRESSION ZIP GRATUITE INTÉGRÉE À WINDOWS


Information sur la source

Description

Compression ZIP Gratuite intégrée à Windows, utilisation de SHELL32.DLL.

Il faut ajouter une référence vers cette DLL au projet

(L'annulation de l'utilisateur n'est pas prise en compte... ce n'est pas un source travaillé c'est juste pour la culture..)
 

Source

  • <STAThread()> Public Sub Main(ByVal Args() As String)
  • Try
  • Dim emptyzip() As Byte = New Byte() {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  • Dim fs As FileStream = File.Create(Args(1))
  • fs.Write(emptyzip, 0, emptyzip.Length)
  • fs.Flush()
  • fs.Close()
  • fs = Nothing
  • Dim sc As Shell32.ShellClass = New Shell32.ShellClass()
  • Dim SrcFlder As Shell32.Folder = sc.NameSpace(Args(0))
  • Dim DestFlder As Shell32.Folder = sc.NameSpace(Args(1))
  • Dim items As Shell32.FolderItems = SrcFlder.Items()
  • DestFlder.CopyHere(items, 20)
  • Dim i As Integer = SrcFlder.Items.Count
  • Console.WriteLine(i)
  • While DestFlder.Items.Count < i
  • System.Threading.Thread.Sleep(1000)
  • End While
  • Catch ex As Exception
  • Console.WriteLine(ex.Message)
  • End Try
  • End Sub
    <STAThread()> Public Sub Main(ByVal Args() As String)
        Try
            Dim emptyzip() As Byte = New Byte() {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

            Dim fs As FileStream = File.Create(Args(1))
            fs.Write(emptyzip, 0, emptyzip.Length)
            fs.Flush()
            fs.Close()
            fs = Nothing
            Dim sc As Shell32.ShellClass = New Shell32.ShellClass()
            Dim SrcFlder As Shell32.Folder = sc.NameSpace(Args(0))
            Dim DestFlder As Shell32.Folder = sc.NameSpace(Args(1))
            Dim items As Shell32.FolderItems = SrcFlder.Items()
            DestFlder.CopyHere(items, 20)
            Dim i As Integer = SrcFlder.Items.Count
            Console.WriteLine(i)
            While DestFlder.Items.Count < i
                System.Threading.Thread.Sleep(1000)
            End While
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
    End Sub

Commentaires et avis

signaler à un administrateur
Commentaire de Lucyberad le 24/02/2006 15:22:48

tres bien mais un petit peu de commentaire aurait été la bienvenue car je comprend pas trop => Dim emptyzip() As Byte = New Byte() {80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}

sinon c bien, mais je sais pas si ca fonctionne sur des machines autre que xp. a voir...

signaler à un administrateur
Commentaire de yoman64 le 25/02/2006 21:03:11

Lucyberad > Ça risque de fonctionner sur windows ME mais pas sur une version inferieur pour la simple raison que les autres versions n'integrais absolument aucune gestion de la compression zip...

Et puis je fais pas de dot net , mais selon ce que je comprends de la syntaxe , il déclare un array contenant P K .......... donc c'est probablement un array de bytes pour le header d'un zip vide.

signaler à un administrateur
Commentaire de Lucyberad le 03/03/2006 21:23:56

ha ok !

signaler à un administrateur
Commentaire de Jomba le 31/03/2006 17:27:35

c'est vraiment bien mais tu saurais comment on décompresse un fichier en utilisant la meme dll svp?
car il faut que je décompresse un fichier mdb sans devoir rajouter de dll ni ocx, je suis obligé d'utiliser ce qui est fournit dans windows.
merci

signaler à un administrateur
Commentaire de TeBeCo le 27/04/2006 20:14:17

je peux me permettre de dire un truc souvent mal vu ?
oui ^^ parfait :)
Lisez les docs un peu elles sont la pour ca
google est votre ami, il suffit d'aller dessus et de taper une recherche sur "algo de compression zip", cherché les RFC en parlant, ou les kit de devellopement, ou le WDK(Windows developpment kit), tout cela se trouve sur le site de crosoft, avec les  signature des fonction ..., il existe EXACTEMENT la meme chose pour a peux pret tout les algo de compression
ca apporte pas forcement tout d'utiliser des DLL tte faite, puisqu'elle sont pas compatible de version en version, et tu risque de te retrouver avec un programme totalement obsolète au prochain wondows ^^
donc fait directement une classe qui compresse et te debite ton fichier depuis un flux qui sera tjs compatible avec une ancienne version de windows et toute les plateforme .net

signaler à un administrateur
Commentaire de thepoe le 24/06/2006 13:05:17

Petit bémol, cela ne marche pas si il y a un répertoire vide dans le repertoire que l'on passe en paramètre...
Domage, car ca m'aurais bien aidé sinon, et je n'ai malheureusement pas le temps de me lancer dans les alo de compression.
Avec une bidouille ca peut marcher:

'VB 2005
'Au début du main on copie le repertoire sans les rep vides
   Shell("xcopy """ & Args(0) & """ """ & Args(0) & "_\"" /S /C /Y /Q /G", AppWinStyle.Hide)

'VB 2005
'A la fin du TRY on supprime le répertoire temporaire
   IO.Directory.Delete(Args(0) & "_")

Voila, j'espère que ca a pu aider certains... Bonne continuation

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Shell32.dll / Windows XP [ par YS1 ] Je travaille sous Windows ME, mais j'ai besoin de la DLL Shell32.dll de Windows XP (32 bits).Quelqu'un peut-il me l'envoyer à l'adresse suivante :mail Algorithme de compression (ZIP RAR ACE....) [ par Fildomen ] Salutje veux me lancer dans un prog de compression, masi je ne trouve pas de doc, s'il vous plait passez moi un lien sur les algorihmes de n'importe e Compression / décompression [ par nicolasheurtevin ] Bonjour, J'ai quelques petits soucis apr&#232;s avoir essay&#233; diff&#233;rents bouts de code permettant la compression zip et la d&#233;compressi Compression [ par eldim ] Bonjour,Est-ce quelqu'un connait un programme zip qui v&#233;rifie si un fichier existe d&#233;ja dans un zip et compare les versions avant d'ajouter Compression ZIP VB.NET 2003 [ par eldim ] Bonjour,Je dispose de la class "ICSharpCode.SharpZipLib.Zip" pour compresser mes fichier en VB.NET.Y a-t-il un moyen de v&#233;rifier si un fichier ex Problème Compression zip [ par Taurus67 ] Bonjour, je fait un petit logiciel qui doit compresser en zip des demos (.dem) ( counter strike ) une fois que celle ci ont fini d'&#234;tre enregistr Modifier l'état de la barre des tâches windows [ par FBRUGEL ] Existe-t-il un API windows (ou autresolution) pour piloter par soft les &#233;tats ("Toujours visible", "masquer automatiquement" etc...) de la barre Problème pour installer VB6 sur WIN XP SP1 [ par laucas ] Bonjour &#224; tous,Voil&#224; mon probl&#232;me est tout simple : je ne peux pas installer VB6 sur WinXP Pro SP1.J'ai le message d'&#233;rreur suivan SERVICE WINDOWS [ par sevajol ] Comment lancer une application windows via un service d&#233;tail : j'ai d&#233;velopper un service windows qui doit lancer une appli windowsparcontre Réalisation d"un fichier ZIP [ par jpleroisse ] Bonjour,Je voudrais placer une source dans un fichier zip sur le Forum, mais je n'ai jamais r&#233;alis&#233; ce genre de cr&#233;ation. Si quelqu'un


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,390 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.