私の GZipStream は、ファイルの最初の行のみを解凍します。7-zip を使用して内容を抽出すると、期待どおりに機能し、ファイルの内容全体が得られます。また、cygwin と Linux で gunzip を使用して期待どおりに抽出されるため、これは O/S 固有 (Windows 7) であると予想されます。
これをトラブルシューティングする方法がわからないので、そのヒントがあれば大いに役立ちます。これと非常に似ているように聞こえますが、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);
}