Unzip en vb.net

Soyez le premier à donner votre avis sur cette source.

Vue 19 024 fois - Téléchargée 1 376 fois

Description

J'ai longuement cherché pour un moyen efficace de dézipper en VB.Net et finalement j'ai réussi à en faire fonctionner un. En fait, je ne suis pas véritablement l'auteur de ce code, le mérite va à gg00xiv, je n'ai fait que traduire une de ses sources pour déziper qui était en C# vers le VB.net et j'ai un peu ajusté certaines choses pour la rendre compatible.

Source / Exemple :


Public Sub ExtractArchive(ByVal zipFilename As String, ByVal ExtractDir As String)
        Dim Redo As Integer = 1
        Dim MyZipInputStream As ZipInputStream
        Dim MyFileStream As FileStream
        MyZipInputStream = New ZipInputStream(New FileStream(zipFilename, FileMode.Open, FileAccess.Read))
        Dim MyZipEntry As ZipEntry = MyZipInputStream.GetNextEntry
        Directory.CreateDirectory(ExtractDir)
        While Not MyZipEntry Is Nothing
            If (MyZipEntry.IsDirectory) Then
                Directory.CreateDirectory(ExtractDir & "\" & MyZipEntry.Name)
            Else
                If Not Directory.Exists(ExtractDir & "\" & Path.GetDirectoryName(MyZipEntry.Name)) Then
                    Directory.CreateDirectory(ExtractDir & "\" & Path.GetDirectoryName(MyZipEntry.Name))
                End If
                MyFileStream = New FileStream(ExtractDir & "\" & MyZipEntry.Name, FileMode.OpenOrCreate, FileAccess.Write)
                Dim count As Integer
                Dim buffer(4096) As Byte
                count = MyZipInputStream.Read(buffer, 0, 4096)
                While count > 0
                    MyFileStream.Write(buffer, 0, count)
                    count = MyZipInputStream.Read(buffer, 0, 4096)
                End While
                MyFileStream.Close()
            End If
            Try
                MyZipEntry = MyZipInputStream.GetNextEntry
            Catch ex As Exception
                MyZipEntry = Nothing
            End Try
        End While
        If Not (MyZipInputStream Is Nothing) Then MyZipInputStream.Close()
        If Not (MyFileStream Is Nothing) Then MyFileStream.Close()
    End Sub

Conclusion :


Une libraire externe a été utilisée : http://www.icsharpcode.net/OpenSource/SharpZipLib/default.asp

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_danu
Messages postés
11
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
30 avril 2010
-
Salut,
Cela fonctionne très bien.
Quand je décompresse, mes fichiers prennent la date de création LastWriteTime (actuelle)et cela est un inconvénient pour mon log car j'ai besoin de la date de création des fichiers, je gère par la suite ces fichiers par rapport à cette date.
J'ai fait des recherches sans succès.
Est-ce possible avec sharpziplib unzip ?j'ai essayé sans trouver
les fichiers que je décompresse proviennent d'un serveur et quand je décompresse avec RAR ou winzip.. etc, j'ai bien les dates de création.
Si quelqu'un a une idée ??
Merci à l'avance.
Danu
NikatorS
Messages postés
149
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
15 avril 2011
-
C'est un bon code.
Il manque juste la gestion d'un mot de passe et ça aurait été parfait.
zakariya_2201
Messages postés
2
Date d'inscription
mercredi 15 novembre 2006
Statut
Membre
Dernière intervention
16 juin 2008
-
une autre chose YOUSSEFINO, c mieux de faire le copier/coller sur un evenement clique du button directement pas sur le module
zakariya_2201
Messages postés
2
Date d'inscription
mercredi 15 novembre 2006
Statut
Membre
Dernière intervention
16 juin 2008
-
ok youssefino
je te consiel de telecharger le projet et essayer de comprendre le code pas a pas,
tu doit savoir d'abord:
* C'est quoi une reference web a quoi il saire...
* Comment l'importer pour travailler avec
* un peu petit peu de courage et de motivation
et sa vien tout seul,et bonne chance
youssefino
Messages postés
1
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
2 novembre 2007
-
JE SUIS ENCORE NOVICE en programmation et j'ai besoin de dezziper un fichier pour un projet ke j'ai à faire.
J'ai donc réccupérer tout bêtement le programme que tu as mis et j'ai fait un copier coller sur mùon ùmodule mais j'imagine ke j'ai pas mal de paramètres à changer.
Si vous pouviez prendre le temps de m'expliker ca serait très gentil


merci

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.