【问题标题】:Is it possible to zip the contents of a directory in C#? [duplicate]是否可以在 C# 中压缩目录的内容? [复制]
【发布时间】:2012-06-24 20:41:49
【问题描述】:

我正在开发一个 c# 应用程序,它必须压缩目录中的所有内容.. 这可能吗?

谢谢

【问题讨论】:

  • 对,应该有很多这样的解决方案:github.com/…
  • @nima 不要告诉用户到别处询问。问题总是可以迁移的。当您告诉他们向其他地方询问时,这将导致交叉发布。以后只让社区成员迁移问题。谢谢!

标签: zip c#


【解决方案1】:

你也可以像这样使用SevenZipSharp

SevenZipCompressor compressor = new SevenZipCompressor();
compressor.CompressDirectory(...);

【讨论】:

    【解决方案2】:

    http://msdn.microsoft.com/en-us/library/system.io.compression.zipfile(v=vs.110).aspx 上查看ZipFile 类的文档。

    更新:该类仅在 .NET 4.5 中可用,它不作为 Windows 7 的一部分安装。您必须从 Microsoft 下载它。

    【讨论】:

    • 这是 .NET 4.5 中的新功能,在早期版本中不可用。
    • 好点,但 .NET 4.5 可用于 Windows 7 和更早版本的 Windows。
    • 可用并不意味着“已使用”。 IE。在您的回答中,您至少可以指定详细信息
    【解决方案3】:

    是的,你可以。DotNetZip 支持使用ZipFile.AddDirectory() 方法将目录添加到 zip 文件中。

    递归压缩整个目录:

    using (ZipFile zip = new ZipFile())
    {
      zip.UseUnicode= true;  // utf-8
      zip.AddDirectory(@"MyFile");
      zip.Save(ZipFileToCreate);
    }
    

    【讨论】:

    • 这个答案对我有用,但重要的是要注意,在 .DotNetZip 库的更高版本中, zip.UseUnicode=true 行已被弃用,因此不再需要该行。跨度>
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多