【发布时间】:2016-06-09 13:21:56
【问题描述】:
我有一个 3.2GB 的 gzip 文件需要解压缩,但使用我的代码的输出只生成一个 64KB 的文件,这是不正确的。
using (FileStream originalFileStream = fileToDecompress.OpenRead())
{
string currentFileName = fileToDecompress.FullName;
string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);
using (FileStream decompressedFileStream = File.Create(newFileName))
{
using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
{
decompressionStream.CopyTo(decompressedFileStream);
Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
}
}
}
我正在使用 .NET 4.5 和我理解的 CopyTo 方法应该适用于大于 4GB 的文件,但没有运气。任何帮助将不胜感激。
【问题讨论】:
-
您的原始 GZip 文件是如何创建的?
-
未知,很可能在 linux 中使用 gzip 命令。我知道它是一个有效的文件,因为 7zip 能够解压缩它没有问题,但 C# 实现不是这样。
标签: c# .net compression