如何在 C# 中使用 GZipStream 解压缩
本文关键字:GZipStream 解压缩 | 更新日期: 2023-09-27 18:35:06
我的问题是我找不到解压缩文件的解决方案。压缩文件在没有错误消息的情况下工作,但我不知道这是否正确。
这是我用于压缩文件的代码:
using (StreamReader sr = new StreamReader(File.Open(srcFile, FileMode.Open), true))
using (GZipStream zip = new GZipStream(File.Open(destFile, FileMode.OpenOrCreate), CompressionMode.Compress, false))
using (StreamWriter sw = new StreamWriter(zip, Encoding.UTF8)) {
while (!sr.EndOfStream) {
sw.Write((char)sr.Read());
}
}
然后我尝试使用以下代码解压缩压缩文件:
using (GZipStream zip = new GZipStream(File.Open(srcFile, FileMode.Open), CompressionMode.Decompress, false))
using (StreamReader sr = new StreamReader(zip, true))
using (StreamWriter sw = new StreamWriter(File.Open(destFile, FileMode.OpenOrCreate), Encoding.UTF8)) {
while (!sr.EndOfStream) {
sw.Write((char)sr.Read());
}
}
解压缩文件的内容与源文件的内容不同,我不知道我在哪里犯了错误。
提前感谢您的帮助。
我很抱歉我的英语不好,但英语不是我的强项。
未指示使用 StreamReader/Writer。 如果文件不是文本文件,它肯定会破坏文件内容。 解压缩的文件将始终具有BOM,原始文件中可能缺少它。
只是没有理由使用这些类,GZipStream不在乎。 请改用 FileStream,这是确保解压缩的字节与原始文件中的字节完全匹配的唯一方法。