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

发布于 2024-11-05 11:34:00 字数 283 浏览 4 评论 0原文

我是 C# 新手,正在使用 C#.Net 2.0 和 Visual Studio 2005。

如何使用 GZipStream 从字符串创建 zip 文件。 (我不想使用任何第三方库并纯粹使用 C# 来完成此操作。)

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

感谢您的帮助。

谢谢,

查图拉

I'm new to C# and using C#.Net 2.0 with Visual Studio 2005.

How can I create a zip file from a string using GZipStream. (I don't want to use any third party libraries and doing this purely using C#.)

FYI: Scenario is this. Already there is a zip file in a folder. I need to encode this zip file stream in Base64 and again zip the Base 64 encoded string. (Creating a new zip file from Base64 encoded original zip file).

Appreciate your help.

Thanks,

Chatura

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

辞慾 2024-11-12 11:34:00

感谢布勒的回复。但无需使用任何外部库我就可以做到。这是代码片段。这不是包含所有 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);
        }
    }

Thanks Bueller for the reply. But without using any external libraries I could do it. Here is the code snippet. This is not the final code with all try/ catch etc. May be useful for others.

        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);
        }
    }
泪之魂 2024-11-12 11:34:00

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

I am assuming you actually mean using the .zip archive format versus another format such as .gz. The .Net 2.0 compression libraries do not out of the box support zip format archives. The GZipStream and such compress to and from gzip format. There is an article here that shows how to support zip in C# without external libraries but I have not tried or tested it. You can find similar articles around but you have to dig to find the pure C# .NET no external library articles.
http://www.codeproject.com/KB/recipes/ZipStorer.aspx

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文