如何压缩文件夹中的所有文件

本文关键字:文件 文件夹 何压缩 压缩 | 更新日期: 2023-09-27 18:34:36

我有一个文件夹"D:'folder",在这个文件夹中,我需要将 10 个文件压缩到一个新的存档"D:'folder.zip"中。

目前我正在使用ICSharpCode.SharpZipLib,但这不是强制性要求,因此其他解决方案是可以接受的。

我面临的问题是,当我尝试执行该方法时FileStream fs = File.OpenRead(@"D:'folder")由于访问指定的路径而出现错误。

如何以简单的方式压缩这些文件?

如何压缩文件夹中的所有文件

DotNetZip比SharpZipLib更容易使用,例如压缩文件夹中的所有文件:

  using (ZipFile zip = new ZipFile())
  {
    zip.AddDirectory(@"MyDocuments'ProjectX", "ProjectX");
    zip.Save(zipFileToCreate);
  }

这是此页面的一个例子:

http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples

我也同意Antonio Bakula使用DotNetZip而不是SharpZipLib的建议。

.NET 4.5 包括用于操作.zip文件的新ZipArchiveZipFile类。有了这种支持,您尝试做的事情可以通过以下方式完成:

ZipFile.CreateFromDirectory(@"D:'Folder", @"Folder.zip");

作为旁注,您收到错误的原因是因为您尝试打开目录而不是文件。File.OpenRead用于打开文件进行读取,因为您提供了一个目录,因此会出现错误。如果要枚举特定文件夹中的文件或目录,可以改用 Directory.EnumerateFilesDirectory.EnumerateDirectories