que tienen código que debe hacer la compresión:GZipStream y descompresión
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();
y yo creo que sí, pero yo quiero para descomprimir lo que se comprime la forma anterior. Yo somethink así:
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();
y aquí no ... Tengo nLea = 0 befeore entrar en el bucle ... Lo que hago mal ?? El archivo de prueba que uso es el archivo TEXT más simple (tamaño: 104 bytes) ...
respuesta Editado para mostrar tanto leer y escribir –
Nótese también que gzip = ".zip" –
(tenga en cuenta que ha corregido un error después de la publicación;! Cheack que tanto 'while' solo hace' Read' en la línea superior (no en la parte inferior) –