我有一个文件夹"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 文件的新类ZipArchive
和类。ZipFile
有了这种支持,您尝试通过以下方式完成:
ZipFile.CreateFromDirectory(@"D:\Folder", @"Folder.zip");
作为旁注,您收到错误的原因是因为您试图打开目录而不是文件。File.OpenRead
用于打开文件进行读取,因为您提供了一个目录,所以您会收到错误消息。如果要枚举特定文件夹中的文件或目录,可以改用Directory.EnumerateFiles
或Directory.EnumerateDirectories
。