【问题标题】:zipping with c#用 c# 压缩
【发布时间】:2010-03-24 18:41:47
【问题描述】:

我正在尝试使用 GZipStream 使用 c# 创建一个 gz 文件。 我的问题是我有一个包含字符串的列表。我需要创建一个受密码保护的 zip 文件,并在其中放入一个包含字符串的文本文件。
我不想创建文本文件,然后压缩它,然后删除文本文件。我想直接创建一个包含文本文件的受密码保护的 zip 文件。
有什么帮助吗?

编辑:我已经完成了拉链的工作。现在我需要为创建的 zip 文件设置一个通行证。有什么帮助吗?

【问题讨论】:

  • 附带说明,GZipStream 不会创建 .zip 文件,它会创建 .gz 文件。我假设这就是你现在真正想要的;如果不是,请相应地更正问题。
  • @scatman:如果此特定问题已被回答,请标记您接受的答案。如果您有不同的问题,请使用“”按钮开始一个新问题。谢谢
  • @scatman - Sharpziplib 支持密码

标签: c# zip gzipstream


【解决方案1】:

您应该考虑使用SharpZipLib。它是一个开源的 .net 压缩库。它包括有关如何创建.gz.zip 文件的示例。请注意,您可以直接写入 .zip 文件。您无需先在磁盘上创建中间文件。

编辑:(响应您的编辑)SharpZipLib 也支持 zip 密码。

【讨论】:

  • 同意...这个库运行良好,非常适合 .NET 习惯用法。
【解决方案2】:

只需创建一个 StreamWriter 包装您的 GZipStream,然后向其写入文本。

【讨论】:

    【解决方案3】:

    GZipStream 可用于创建 .gz 文件,但这与 .zip 文件不同。

    要创建受密码保护的 zip 文件,我认为您需要去第三方库。

    这里是如何使用DotNetZip...

    var sb = new System.Text.StringBuilder();
    sb.Append("This is the text file...");
    foreach (var item in listOfStrings)
        sb.Append(item);
    
    // sb now contains all the content that will be placed into
    // the text file entry inside the zip.
    
    using (var zip = new Ionic.Zip.ZipFile())
    {
        // set the password on the zip (implicitly enables encryption)
        zip.Password = "Whatever.You.Like!!"; 
        // optional: select strong encryption
        zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZipAes256;
        // add an entry to the zip, specify a name, specify string content
        zip.AddEntry("NameOfFile.txt", sb.ToString());
        // save the file
        zip.Save("MyFile.zip");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-12
      • 1970-01-01
      • 1970-01-01
      • 2017-11-13
      • 2013-08-15
      • 1970-01-01
      • 2021-02-09
      • 1970-01-01
      相关资源
      最近更新 更多