我的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