如何从c#中的嵌入式文件流中解压缩

时间:2014-01-28 11:03:52

标签: c# stream zip embedded-resource unzip

我的项目中有一个嵌入式zip文件。我需要将它解压缩到某个位置。

我不想使用外部库。

    Stream _pluginZipResourceStream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("plugin.zip");

我试过GZipStream但最终出错了!

        using (FileStream decompressedFileStream = File.Create(outputFileName))
        {
            using (GZipStream decompressionStream = new GZipStream(fileStream, CompressionMode.Decompress))
            {
                decompressionStream.CopyTo(decompressedFileStream);
            }
        }
未处理

InvalidDataException :GZip标头中的幻数不正确。确保传入GZip流。

如何解压缩???

2 个答案:

答案 0 :(得分:1)

GZip是一种特定的压缩算法,但很可能在您的zip文件中没有使用。

如果您使用的是.NET 4.5,则可以使用ZipArchive类。如果没有,请参阅How to extract ZIP file in C#

答案 1 :(得分:1)

如果您有幸使用框架4.5或更高版本,可以使用ZipArchive查看:

http://msdn.microsoft.com/de-de/library/System.IO.Compression%28v=vs.110%29.aspx

如果您遇到4.0或更早版本,则必须使用外部库,或将存档转换为GZip。