gpt4 book ai didi

c# - 在 C# 中解压缩流

转载 作者:太空狗 更新时间:2023-10-29 18:12:29 27 4
gpt4 key购买 nike

我在 C# 中工作,我正在为互联网下载一个包含一个 XML 文件的 zip 文件。我希望加载此 XML 文件。这是我目前所拥有的:

byte[] data;
WebClient webClient = new WebClient();
try {
data = webClient.DownloadData(downloadUrl);
}
catch (Exception ex) {
Console.WriteLine("Error in DownloadData (Ex:{0})", ex.Message);
throw;
}

if (data == null) {
Console.WriteLine("Bulk data is null");
throw new Exception("Bulk data is null");
}

//Create the stream
MemoryStream stream = new MemoryStream(data);
XmlDocument document = new XmlDocument();

//Gzip
GZipStream gzipStream = new GZipStream(stream, CompressionMode.Decompress);

//Load report straight from the gzip stream
try {
document.Load(gzipStream);
}
catch (Exception ex) {
Console.WriteLine("Error in Load (Ex:{0})", ex.Message);
throw;
}

document.Load 中,我总是遇到以下异常:
GZip header 中的魔数(Magic Number)不正确。确保您传入的是 GZip 流。

我做错了什么?

最佳答案

显然 SharpZipLib 现在已无人维护,您可能想避免使用它: https://stackoverflow.com/a/593030

在 .NET 4.5 中现在有 built in support for zip files ,因此对于您的示例,它将是:

var data = new WebClient().DownloadData(downloadUrl);

//Create the stream
var stream = new MemoryStream(data);

var document = new XmlDocument();

//zip
var zipArchive = new ZipArchive(stream);

//Load report straight from the zip stream
document.Load(zipArchive.Entries[0].Open());

关于c# - 在 C# 中解压缩流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212493/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com