【问题标题】:How to create a zip file using encoded string in C#如何在 C# 中使用编码字符串创建 zip 文件
【发布时间】:2011-05-04 14:03:59
【问题描述】:

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

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

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

感谢您的帮助。

谢谢,

查图拉

【问题讨论】:

    标签: c# gzipstream


    【解决方案1】:

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

    【讨论】:

    • 我认为这段代码不会创建一个有效的 zip 文件(它不是伪装的 gz 文件)。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-08-10
      • 2010-10-01
      • 2016-08-29
      相关资源
      最近更新 更多