[英]Problem with decompress, GZipStream
我對decomress gzip有問題:
string fileData = string.Empty;
// byte[] starts with 31 and 139
var gzBuffer = entity.Data.Skip(pos).ToArray();
using (GZipStream stream = new GZipStream(new MemoryStream(gzBuffer),CompressionMode.Decompress))
{
const int size = 4096;
byte[] buffer = new byte[size];
using (MemoryStream memory = new MemoryStream())
{
int count = 0;
do
{
count = stream.Read(buffer, 0, size);
if (count > 0)
{
memory.Write(buffer, 0, count);
}
} while (count > 0);
fileData = Encoding.UTF8.GetString(memory.ToArray());
}
}
在調試器中, 總計數始終為0。問題出在哪里?
謝謝。
不知道這是否會對您有很大幫助,但我會盡力。 這就是我在示例項目中使用GZIP壓縮/解壓縮文件的方式。 也許您可以根據需要調整此代碼?
public string Compress(FileInfo fi)
{
string outPath;
using (FileStream inFile = fi.OpenRead())
{
outPath = fi.FullName + ".gz";
using (FileStream outFile = File.Create(outPath))
{
using (var compress = new GZipStream(outFile,
CompressionMode.Compress))
{
inFile.CopyTo(compress);
}
}
}
return outPath;
}
public void Decompress(FileInfo fi)
{
using (FileStream inFile = fi.OpenRead())
{
string curFile = fi.FullName;
string origName = curFile.Remove(curFile.Length - fi.Extension.Length);
using (FileStream outFile = File.Create(origName))
{
using (var decompress = new GZipStream(inFile,
CompressionMode.Decompress))
{
decompress.CopyTo(outFile);
}
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.