Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Classe GZipStream

4 réponses
Avatar
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

4 réponses

Avatar
Gilles TOURREAU
Le Tue, 20 Nov 2007 16:19:39 +0100, Jacques (BE) a
é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
Avatar
Jacques \(BE\)
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" a écrit dans le message de
news:
Le Tue, 20 Nov 2007 16:19:39 +0100, Jacques (BE) a
é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


Avatar
Jacques \(BE\)
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)" a écrit dans le message de
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




Avatar
Gilles TOURREAU
Le Tue, 20 Nov 2007 18:12:38 +0100, Jacques (BE) a
é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)" a écrit dans le message de
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