У меня есть код, который должен сделать компрессию:GZipStream и декомпрессия
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();
, и я думаю, что это делает, но я хочу, чтобы разархивировать что сжимали выше способом. Я somethink так:
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();
и здесь не ... У меня nRead = 0 befeore входя в петлю ... Что я делаю не так ?? Тестовый файл, который я использую, является самым простым файлом TEXT (размер: 104 байта) ...
Edited ответ, чтобы показать, как читать и писать –
Заметим также, что GZIP = «.zip» –
(обратите внимание, я исправил ошибку после размещения;! Cheack что оба 'while' зацикливают только' Read' на верхней строке (а не на дне). –