My GZipStream будет только распаковывать первую строку файла. Извлечение содержимого через 7-zip работает, как ожидалось, и дает мне полное содержимое файла. Он также извлекает, как и ожидалось, с помощью gunzip на cygwin и linux, поэтому я ожидаю, что это зависит от 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