我的GZipStream只会解压文件的第一行。按照预期通过7-zip提取内容并为我提供整个文件内容。它也按照预期在cygwin和linux上使用gunzip进行提取,所以我期望这是O/S特定的(Windows 7)。GZipStream只解压第一行
我不确定如何去解决这个问题,所以任何提示都会帮助我很多。这听起来与this非常相似,但使用SharpZLib的结果相同。
下面是我在做什么:
var inputFile = String.Format(@"{0}\{1}", inputDir, fileName);
var outputFile = String.Format(@"{0}\{1}.gz", inputDir, fileName);
var dcmpFile = String.Format(@"{0}\{1}", outputDir, fileName);
using (var input = File.OpenRead(inputFile))
using (var fileOutput = File.Open(outputFile, FileMode.Append))
using (GZipStream gzOutput = new GZipStream(fileOutput, CompressionMode.Compress, true))
{
input.CopyTo(gzOutput);
}
// Now, decompress
using (FileStream of = new FileStream(outputFile, FileMode.Open, FileAccess.Read))
using (GZipStream ogz = new GZipStream(of, CompressionMode.Decompress, false))
using (FileStream wf = new FileStream(dcmpFile, FileMode.Append, FileAccess.Write))
{
ogz.CopyTo(wf);
}
如果这是相关的,我还应该补充一点,当我构建文件时,我使用Environment.NewLine()来分隔每一行。 – duckus