j'ai le code qui devrait faire la compression:GZipStream et la décompression
FileStream fs = new FileStream("g:\\gj.txt", FileMode.Open);
FileStream fd = new FileStream("g:\\gj.zip", FileMode.Create);
GZipStream csStream = new GZipStream(fd, CompressionMode.Compress);
byte[] compressedBuffer = new byte[500];
int offset = 0;
int nRead;
nRead = fs.Read(compressedBuffer, offset, compressedBuffer.Length);
while (nRead > 0)
{
csStream.Write(compressedBuffer, offset, nRead);
offset = offset + nRead;
nRead = fs.Read(compressedBuffer, offset, compressedBuffer.Length);
}
fd.Close();
fs.Close();
et je pense qu'il fait, mais je veux décomprimer ce qui a été compressé la manière ci-dessus. Je somethink comme ça:
FileStream fd = new FileStream("g:\\gj.new", FileMode.Create);
FileStream fs = new FileStream("g:\\gj.zip", FileMode.Open);
GZipStream csStream = new GZipStream(fs, CompressionMode.Decompress);
byte[] decompressedBuffer = new byte[500];
int offset = 0;
int nRead;
nRead=csStream.Read(decompressedBuffer, offset, decompressedBuffer.Length);
while (nRead > 0)
{
fd.Write(decompressedBuffer, offset, nRead);
offset = offset + nRead;
nRead = csStream.Read(decompressedBuffer, offset, decompressedBuffer.Length);
}
fd.Close();
fs.Close();
et ici il ne pas ... J'ai nLisez = 0 befeore entrant dans la boucle ... Qu'est-ce que je fais mal ?? Le fichier de test que j'utilise est le fichier TEXT le plus simple (taille: 104 octets) ...
Edité réponse à montrer à la fois lire et écrire –
Notez également que gzip = « .zip » –
(note je fixe un bug après avoir affiché;! Cheack que à la fois '' while' boucles que read' sur la ligne supérieure (pas au fond aussi bien). –