Compression zip gratuite intégrée à windows

Soyez le premier à donner votre avis sur cette source.

Snippet vu 25 406 fois - Téléchargée 31 fois

Contenu du snippet

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 / Exemple :


<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

A voir également

Ajouter un commentaire

Commentaires

Messages postés
227
Date d'inscription
samedi 21 mai 2005
Statut
Membre
Dernière intervention
26 avril 2012

Bonjour,

Et pour le mot de passe ? Il n'y as pas de possibilité via le header ?

Merci
Messages postés
30
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
1 juin 2011

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
Messages postés
467
Date d'inscription
lundi 24 juin 2002
Statut
Membre
Dernière intervention
9 mars 2011

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
Messages postés
58
Date d'inscription
mercredi 2 novembre 2005
Statut
Membre
Dernière intervention
22 juillet 2010

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
Messages postés
414
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
26 juillet 2007
2
ha ok !
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.