GzipStreamから解凍すると、「GZipフッターのストリームサイズが実際のストリームサイズと一致しません」というIO例外が発生します。このエラーは複数のファイルで100%発生しているため、これが「実際の」破損ファイルの問題であるとは思われません。
圧縮コードは次のとおりです。
using (var fileStream = fileInfo.OpenRead())
{
using (var outFile = File.Create(Path.Combine(backupLocation, backupFileName.ToString())))
{
using (var gzCompressionStream = new GZipStream(outFile, CompressionMode.Compress))
{
fileStream.CopyTo(gzCompressionStream);
}
}
}
例外をスローしている解凍コードは次のとおりです。
using (var fileStream = fileInfo.OpenRead())
{
// remove the extension
var fileName = fileInfo.Name;
var originalName = fileName.Remove(fileName.Length - fileInfo.Extension.Length);
using (var outFile = File.Create(Path.Combine(transferLocation, originalName)))
{
using (var gzDecompressionStream = new GZipStream(fileStream,CompressionMode.Decompress))
{
gzDecompressionStream.CopyTo(outFile);
}
}
}