Ho codice che dovrebbe fare la compressione:GZipStream e decompressione
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();
e credo che lo fa, ma voglio decomprimere ciò che è stato compresso modo sopra. Io somethink così:
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();
e qui non ... Ho nLeggi = 0 befeore entrare nel ciclo ... Cosa ho fatto di sbagliato ?? Il file di prova che utilizzo è il file TEXT più semplice (dimensione: 104 byte) ...
risposta A cura di mostrare sia leggere e scrivere –
Si noti inoltre che gzip = ".zip" –
(nota che ho corretto un bug dopo la pubblicazione;! Cheack che entrambi i cicli 'while' si spostano solo' Read' sulla riga superiore (non in fondo) –