begin process at 2012 05 28 14:04:59
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fichier / Disque

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

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


 Information sur la source

Note :
7,67 / 10 - par 3 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
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é :9 695 / 555

Auteur : hvb

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (8)
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

Les Membres Club peuvent 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 :
.

 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) FOND DE FEUILLE ANIMÉ : DÉGRADÉ MOUVANT POUR ABOUT OU SPLASH...
Source avec Zip Source avec une capture Source .NET (Dotnet) FONT VIEWER : VISIONNEUSE DE POLICES SYSTEMES.
Source avec Zip Source avec une capture Source .NET (Dotnet) HBSNAPSHOTERV3.0 : GESTIONNAIRE DE CAPTURES D'ÉCRAN
Source avec Zip Source avec une capture Source .NET (Dotnet) JEU : PICROSS OU "PUZZLE JAPONAIS"
Source avec Zip Source .NET (Dotnet) [.NET2] CLASSE DE TÉLÉCHARGEMENT HTTP AVEC GESTION DE RESUME...

 Sources de la même categorie

ECLATER UN CLASSEUR EXCEL EN AUTANT DE FICHIERS QUE DE FEUIL... par GMY
Source avec Zip Source avec une capture Source .NET (Dotnet) MAGIC FILE NAME : RENOMMEZ VOS FICHIERS AUTOMAGIQUEMENT ! par Erudix
Source avec Zip Source .NET (Dotnet) MODIFIER LES EXTENSION DES FICHIERS par okosa
ROUTINE DIR RÉCURSIVE POUR OBTENIR LA LISTE DE TOUS LES FICH... par kerisolde
Source avec Zip Source avec une capture FILE,SECURITY,FICHIER par okosa

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) VBZIP GESTION D'ARCHIVES AU FORMAT ZIP UTILISANT IONIC.UTIL... par gillardg
Source avec Zip Source .NET (Dotnet) ZLIB.NET : COMPRESSION ZIP AVEC VB.NET par bouv
Source avec Zip Source .NET (Dotnet) NET-2 COMPRESSION DE FICHIER EN ZIP AVEC L'AIDE DE VJ# ET EN... par cmarcotte
Source avec Zip Source avec une capture MODULE ZLIB - LA COMPRESSION FACILE... (OU DECOMPRESSION) par Renfield
ZIPPER UN FICHIER EN UTILISANT LA FONCTION DE COMPRESSION IN... par cavo789

Commentaires et avis

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


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...

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)

Commentaire de hvb le 10/04/2007 10:31:44

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

Commentaire de mumuxe le 26/09/2009 23:32:22 5/10

Un bon code, très clair et bien rédigé. Pourtant, j'ai un petit problème. Lorsque je compresse un ficher, il en ressort ... plus GROS !!! Par exemple, pour un ficher texte de 24 octès à l'entrée, il y ressort avec 148 octès. Si quelqu'un pourrais m'expliquer et surtout apporter une solution au problème, ça serait gentil.

Commentaire de piwee le 28/09/2009 12:13:37

Mumuxe, un fichier compressé a toujours une entête qui fait X bytes avec en plus, la liste des fichiers compressés dans l'archive, leur taille, et d'autres informations (je ne sais pas ce qui est stocké exactement).
Ce qui fait que tu as X bytes d'entête suivis de tous les fichiers compressés.
Ce n'est pas un problème, c'est tout à fait normal.

Commentaire de MiciM le 08/09/2010 23:18:08

Perso, le résultat est bizarre !
1. Je choisi un fichier (Image.jpg)
2. Je donne un nom à mon fichier zip (test).

Je regarde (test.zip) avec Winrar et là, le fichier archivé à le même nom que l'archive (test) et pas d'extension.

Pour décompressé :
1. Je reprends mon fichier Zip.
2. Chose que je ne comprends pas, il me demande un autre nom ?!? Je lui tape (truc).

Le fichier décompressé, porte le second nom que j'ai donné (truc sans extention)
Résultat le fichier est correcte lorsque je lui remet l'extention (.jpg)
Quel étrangeté !
Pourquoi, après avoir demandé le nom de l'archive, ton script demande un nom de fichier pour la décompresser ? T'as déjà vu Winzip ou Winrar demander cela ? Un emplacement, Ok mais pas un nom de fichier...

Commentaire de Prog1001 le 17/11/2011 17:07:59 10/10

Merci pour ce code !

 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 sevenzipsharp.dll et decompression .zip par exemple [ par bidouille007 ] BOnjour je développe un petit programme sous vb 2008 dans lequel je souhaite dézipper des fichiers contenu dans un fichier zip Or je pensais que sev


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,571 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales