我试图用这个代码来压缩部分GZipStream腐化文件,如果我在收拾部分它(同花顺不工作)
using (var fsIn = new FileStream("test.avi", FileMode.Open))
{
using (var fsOut = new FileStream("test.avi.gz", FileMode.Create))
{
var buf = new byte[1024 * 1024];
using (var gzip = new GZipStream(fsOut, CompressionMode.Compress, true))
{
while (true)
{
var readCount = fsIn.Read(buf, 0, buf.Length);
if (readCount <= 0)
{
break;
}
gzip.Write(buf, 0, buf.Length);
gzip.Flush();
}
}
}
}
一个文件,但我已经有了解压后损坏的文件。此代码有效
using (var fsIn = new FileStream("test.avi", FileMode.Open))
{
using (var fsOut = new FileStream("test.avi.gz", FileMode.Create))
{
var buf = new byte[1024*1024];
while (true)
{
var readCount = fsIn.Read(buf, 0, buf.Length);
if (readCount <= 0)
{
break;
}
// This string was transferred into "while" cycle
using (var gzip = new GZipStream(fsOut, CompressionMode.Compress, true))
{
gzip.Write(buf, 0, buf.Length);
}
}
}
}
为什么gzip.Flush()不起作用?为什么只有gzip.Close()有效?
嗯。内置的方法总结告诉了相反的情况。 –