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 !

[.NET2] COMPRESSION/DÉCOMPRESSION GZIP DE FICHIER GRÂCE À IO.COMPRESSION


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : compression, decompression, gzip, zip Niveau : Débutant Date de création : 16/03/2007 Date de mise à jour : 16/03/2007 20:17:00 Vu / téléchargé: 7 028 / 474

Note :
8 / 10 - par 1 personne
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (4)
Ajouter un commentaire et/ou une note


Description

Un tout petit sample de la classe incroyablement pratique Io.Compression, permettant de compresser et de décompresser des fichiers à l'aide d'un algo puissant, et ce très rapidement. (aussi bien coté code que coté éxecution).
Merci le framework 2 !
 

Source

  • Imports System.IO
  • Imports System.IO.Compression
  • Public Class HbGzip
  • Public Shared Function Compress(ByVal cheminSource As String, ByVal cheminCible As String) As String
  • Try
  • Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
  • Dim F_array(hbread.BaseStream.Length) As Byte
  • hbread.BaseStream.Seek(0, SeekOrigin.Begin)
  • hbread.BaseStream.Read(F_array, 0, F_array.Length)
  • hbread.BaseStream.Flush()
  • hbread.Close()
  • Dim tmpstream As FileStream = New FileStream(cheminCible, FileMode.OpenOrCreate)
  • Dim gzipper As GZipStream = New GZipStream(tmpstream, CompressionMode.Compress)
  • gzipper.Write(F_array, 0, F_array.Length)
  • gzipper.Flush()
  • gzipper.Close()
  • Return "compression effectuée avec succés"
  • Catch ex As Exception
  • Return ex.ToString
  • End Try
  • End Function
  • Public Shared Function Decompress(ByVal cheminSource As String, ByVal cheminCible As String) As String
  • Try
  • Dim bufferLen As Integer = 1024
  • Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
  • Dim gzipper As GZipStream = New GZipStream(hbread.BaseStream, CompressionMode.Decompress)
  • Dim hbwrite As New BinaryWriter(File.OpenWrite(cheminCible))
  • Dim F_array(bufferLen) As Byte
  • Dim readlen As Integer
  • Dim flag As Boolean = True
  • Do
  • readlen = gzipper.Read(F_array, 0, F_array.Length)
  • If readlen > 0 Then
  • flag = True
  • If readlen = (bufferLen + 1) Then hbwrite.Write(F_array, 0, readlen) Else hbwrite.Write(F_array, 0, readlen - 1)
  • Else
  • flag = False
  • End If
  • Loop While (flag)
  • hbwrite.Close()
  • gzipper.Close()
  • Return "decompression effectuée avec succés"
  • Catch ex As Exception
  • Return ex.ToString
  • End Try
  • End Function
  • End Class
Imports System.IO
Imports System.IO.Compression

Public Class HbGzip

    Public Shared Function Compress(ByVal cheminSource As String, ByVal cheminCible As String) As String
        Try
            Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
            Dim F_array(hbread.BaseStream.Length) As Byte
            hbread.BaseStream.Seek(0, SeekOrigin.Begin)
            hbread.BaseStream.Read(F_array, 0, F_array.Length)
            hbread.BaseStream.Flush()
            hbread.Close()
            Dim tmpstream As FileStream = New FileStream(cheminCible, FileMode.OpenOrCreate)
            Dim gzipper As GZipStream = New GZipStream(tmpstream, CompressionMode.Compress)
            gzipper.Write(F_array, 0, F_array.Length)
            gzipper.Flush()
            gzipper.Close()
            Return "compression effectuée avec succés"
        Catch ex As Exception
            Return ex.ToString
        End Try
    End Function

    Public Shared Function Decompress(ByVal cheminSource As String, ByVal cheminCible As String) As String
        Try
            Dim bufferLen As Integer = 1024
            Dim hbread As New BinaryReader(File.OpenRead(cheminSource))
            Dim gzipper As GZipStream = New GZipStream(hbread.BaseStream, CompressionMode.Decompress)
            Dim hbwrite As New BinaryWriter(File.OpenWrite(cheminCible))
            Dim F_array(bufferLen) As Byte
            Dim readlen As Integer
            Dim flag As Boolean = True
            Do
                readlen = gzipper.Read(F_array, 0, F_array.Length)
                If readlen > 0 Then
                    flag = True
                    If readlen = (bufferLen + 1) Then hbwrite.Write(F_array, 0, readlen) Else hbwrite.Write(F_array, 0, readlen - 1)
                Else
                    flag = False
                End If
            Loop While (flag)
            hbwrite.Close()
            gzipper.Close()
            Return "decompression effectuée avec succés"
        Catch ex As Exception
            Return ex.ToString
        End Try
    End Function
End Class

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

16 mars 2007 20:17:00 :
.

Commentaires et avis

signaler à un administrateur
Commentaire de TroXsA le 16/03/2007 20:44:21

Pas mal mais tres ressemblant a l'exemple du MSDN !
par la meme occasion je ferais une remarque a monsieur Microsoft on sais jamais qu'il passerais par la :)
pourquoi ne pas avoir fait une class dans le framework 2 Compression/Decompression ? !
sa aurait ete plus simple enfin bon c'est qu'un avis perso :)

Juste parazarre tu aurais le Snippet qui va avec ?
Merci et bonne continuation !

troxsa.info


signaler à un administrateur
Commentaire de hvb le 16/03/2007 22:00:46

hmm salut et merci pour ton commentaire.
la ressemblance avec l'exemple de microsoft est etonnante, à part si tu parles seulement des namespace utilisés lol... car c'est resultat de tattonement, et ce à partir de mon sample d'accés binaire présent ici... surtout la decompression, dont l'algo est je pense, à revoir. Peux tu me filer l'url?

Et je comprend pas ce que tu entend pas snippet, j'ai également fait une petite recherche, et j'ai survolé un article mais n'ai pas compris l'interet de ces snippets... je croyais que c'etait juste le fait d'etre un bout de code moi...

signaler à un administrateur
Commentaire de hvb le 16/03/2007 22:08:08

ah ouais je viens de capter pour les snippets, mais tu veux quoi? le xml entier generé?
merci c2i (http://www.c2i.fr/code.aspx?IDCode=609)

signaler à un administrateur
Commentaire de hvb le 10/04/2007 10:31:44

j'adore les contributions sans suite... ^^

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Installation, compression, decompression [ par verbateam2002 ] Bonjour,Je cherche à faire un programme qui va decompresser automatiquement des fichiers (avec une architecture définie) vers un disque que l'on aura 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ès avoir essayé différents bouts de code permettant la compression zip et la décompressi Compression [ par eldim ] Bonjour,Est-ce quelqu'un connait un programme zip qui vérifie si un fichier existe déja dans un zip et compare les versions avant d'ajouter Recherche ZIp + decompression + execution [ par Acry ] Bonjour, je cherche un debut de code pour me lancer... je doit en faite lancer un .vbs qui se situera tjr dans le même dossier qu'un fichier zip. C decompression des sources zip [ par vieuxjo ] j'ai chargé plusieurs sources compressés en zip que je n'arrive pas à décompresser.(sources 7,85,266...)stuffit Expander ne comprend pas le format et Compression GZIP [ par vlad2i ] Pour faire court : je cherche un moyen de compresser des données (si possible en mémoire) en utilisant la compression gzip.Mes essais avec zlib n'ont 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'être enregistr Compression/Decompression avec crc en VB.net [ par serey ] Bonjour,je souhaiterai compresser et decompresser des fichiers en vb et cela avec un crc pour vérifier l'integrité de mes fichiers. Comment 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érifier si un fichier ex


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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,655 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é.