如何在C#中使用编码字符串创建zip文件

时间:2011-05-04 14:03:59

标签: c# gzipstream

我是C#的新手,并在Visual Studio 2005中使用C#.Net 2.0。

如何使用GZipStream从字符串创建zip文件。 (我不想使用任何第三方库,纯粹使用C#。)

仅供参考:情景就是这样。文件夹中已有一个zip文件。我需要在Base64中对此zip文件流进行编码,然后再压缩Base 64编码的字符串。 (从Base64编码的原始zip文件创建新的zip文件)。

感谢您的帮助。

谢谢,

Chatura

2 个答案:

答案 0 :(得分:1)

我假设您实际上是指使用.zip存档格式而不是其他格式,例如.gz。 .Net 2.0压缩库不支持zip格式存档。 GZipStream和gzip等格式的压缩。这里有一篇文章展示了如何在没有外部库的情况下在C#中支持zip,但我还没有尝试或测试它。你可以找到类似的文章,但你必须挖掘找到纯C#.NET没有外部库文章。 http://www.codeproject.com/KB/recipes/ZipStorer.aspx

答案 1 :(得分:1)

感谢Bueller的回复。但是,如果不使用任何外部库,我就可以做到。这是代码片段。这不是所有try / catch等的最终代码。可能对其他人有用。

        private static void CreateZipFromText(string text)
    {            
        byte[] byteArray = ASCIIEncoding.ASCII.GetBytes(text);
        string encodedText = Convert.ToBase64String(byteArray);

        FileStream destFile = File.Create("C:\\temp\\testCreated.zip");

        byte[] buffer = Encoding.UTF8.GetBytes(encodedText);
        MemoryStream memoryStream = new MemoryStream();

        using (System.IO.Compression.GZipStream gZipStream = new System.IO.Compression.GZipStream(destFile, System.IO.Compression.CompressionMode.Compress, true))
        {
            gZipStream.Write(buffer, 0, buffer.Length);
        }
    }