[英]How to decompress with GZipStream in C#?
我的問題是我找不到解壓縮文件的解決方案。 壓縮文件時不會出現錯誤消息,但是我不知道這是否正確。
這是我壓縮文件的代碼:
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表,原始文件中可能會丟失該BOM表。
根本沒有理由使用這些類,GZipStream不在乎。 而是使用FileStream,這是確保解壓縮的字節與原始文件中的字節完全匹配的唯一方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.