Classe GZipStream

Le
Jacques \(BE\)
Bonjour,

Je découvre la classe GZipStream et je constate que le fichier compressé est
plus gros que le fichier non compressé.

Est-ce normal ?!


Merci de vos réponses


Jacques
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU
Le #12232451
Le Tue, 20 Nov 2007 16:19:39 +0100, Jacques (BE) écrit:

Bonjour,

Je découvre la classe GZipStream et je constate que le fichier compressé
est
plus gros que le fichier non compressé.

Est-ce normal ?!


Merci de vos réponses


Jacques





Quel type de donnée envoyez vous dans le flux ?
Ne compressez vous 2 fois la même chose ?
Pouvez-vous nous poster un code source ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Jacques \(BE\)
Le #12232441
Bonjour,



Voici le code utilisé



Jacques



Imports System.IO

Imports System.IO.Compression

Public Class ZipFich

'Le fichier qui sera contenu dans l'archive au format Gzip comportera le
même nom

'que le fichier d'origine mais sans son extension, donc si par exemple vous
compressez

'un fichier .txt je vous recommande de nommer le fichier compressé
"mon_fichier.txt.gz",

'ainsi si vous le décompressez avec un logiciel tierce, le fichier sera bien
nommé

'"mon_fichier.txt" et non "mon_fichier", ce qui pourrait être ennuyeux si
l'on ne connait

'pas l'extension de ce fichier...



Public Function compresserFichier(ByVal cheminSource As String, ByVal
cheminDestination As String) As Boolean

' cheminSource : chemin complet du fichier à compresser

' cheminDestination : chemin complet du fichier compressé à créer

Try

' Le fichier est placé dans le FileStream

Dim monFileStream As New FileStream(cheminSource, FileMode.Open)



Dim monBuffer(monFileStream.Length) As Byte

' Lecture de l'intégralité du FileStream

monFileStream.Read(monBuffer, 0, CInt(monFileStream.Length))

' Fermeture du FileStream

monFileStream.Close()

' Création du fichier qui va contenir le fichier compressé

monFileStream = New FileStream(cheminDestination, FileMode.Create)

' Compression des données

Dim monGZipStream As New GZipStream(monFileStream, CompressionMode.Compress,
False)

' Ecriture des données compressées dans le fichier de destination

monGZipStream.Write(monBuffer, 0, monBuffer.Length)

' Fermeture du GZipStream

monGZipStream.Close()

Return True

Catch ex As Exception

Return False

MsgBox(ex.Message)

End Try




"Gilles TOURREAU" news:
Le Tue, 20 Nov 2007 16:19:39 +0100, Jacques (BE) écrit:

> Bonjour,
>
> Je découvre la classe GZipStream et je constate que le fichier compressé
> est
> plus gros que le fichier non compressé.
>
> Est-ce normal ?!
>
>
> Merci de vos réponses
>
>
> Jacques
>
>

Quel type de donnée envoyez vous dans le flux ?
Ne compressez vous 2 fois la même chose ?
Pouvez-vous nous poster un code source ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Jacques \(BE\)
Le #12232431
Bonjour,

Fichier .doc 282 k avant compression.
Fichier .doc 287 k après compression.

Voici un autre bout de code et le résultat est le même !

Dim sGZ As String = "C:Fichier_ListeClickOnce.doc" & ".gz"

Dim sFich As String = "C:Fichier_ListeClickOnce.doc" '& ".gz"

Dim fstream As New FileStream(sFich, FileMode.Open, FileAccess.Read)

Dim buffer(CInt(fstream.Length - 1)) As Byte

fstream.Read(buffer, 0, CInt(fstream.Length))

fstream.Close()

fstream = New FileStream(sGZ, FileMode.Create, FileAccess.Write)

Dim gzip As New GZipStream(fstream, CompressionMode.Compress)

gzip.Write(buffer, 0, buffer.Length)

gzip.Close()

fstream.Close()

"Jacques (BE)" news:
Bonjour,

Je découvre la classe GZipStream et je constate que le fichier compressé


est
plus gros que le fichier non compressé.

Est-ce normal ?!


Merci de vos réponses


Jacques




Gilles TOURREAU
Le #12232421
Le Tue, 20 Nov 2007 18:12:38 +0100, Jacques (BE) écrit:

Bonjour,

Fichier .doc 282 k avant compression.
Fichier .doc 287 k après compression.

Voici un autre bout de code et le résultat est le même !

Dim sGZ As String = "C:Fichier_ListeClickOnce.doc" & ".gz"

Dim sFich As String = "C:Fichier_ListeClickOnce.doc" '& ".gz"

Dim fstream As New FileStream(sFich, FileMode.Open, FileAccess.Read)

Dim buffer(CInt(fstream.Length - 1)) As Byte

fstream.Read(buffer, 0, CInt(fstream.Length))

fstream.Close()

fstream = New FileStream(sGZ, FileMode.Create, FileAccess.Write)

Dim gzip As New GZipStream(fstream, CompressionMode.Compress)

gzip.Write(buffer, 0, buffer.Length)

gzip.Close()

fstream.Close()

"Jacques (BE)" news:
Bonjour,

Je découvre la classe GZipStream et je constate que le fichier compressé


est
plus gros que le fichier non compressé.

Est-ce normal ?!


Merci de vos réponses


Jacques









C'est bizarre car les 2 codes sont corrects... J'arrive à bien compresser
chez moi !

En plus un "doc" ca se compresse sans problème !

Avez-vous essayé avec un autre fichier ?

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Publicité
Poster une réponse
Anonyme