的文件,我有一个文件夹"D:\folder"
和此文件夹中我有10个文件,我需要压缩到一个新的存档"D:\folder.zip"
。如何压缩文件夹中
目前我正在使用ICSharpCode.SharpZipLib但这不是强制性要求,所以其他解决方案是可以接受的。
我现在面临的问题是,当我尝试执行方法FileStream fs = File.OpenRead(@"D:\folder")
我得到的,因为访问specifided路径的错误。
如何以简单的方式压缩这些文件?
的文件,我有一个文件夹"D:\folder"
和此文件夹中我有10个文件,我需要压缩到一个新的存档"D:\folder.zip"
。如何压缩文件夹中
目前我正在使用ICSharpCode.SharpZipLib但这不是强制性要求,所以其他解决方案是可以接受的。
我现在面临的问题是,当我尝试执行方法FileStream fs = File.OpenRead(@"D:\folder")
我得到的,因为访问specifided路径的错误。
如何以简单的方式压缩这些文件?
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
是的,这是一个更容易使用比SharpLib使用,1 –
库谢谢!你能说我这个ZipFile需要哪个程序集吗? Ionic.Zip - 据我了解。正确? –
程序集是Ionic.Zip.dll –
我也同意Antonio Bakula建议使用DotNetZip而不是SharpZipLib。
.NET 4.5包括新ZipArchive
和ZipFile
类用于操纵.zip文件。有了这种支持你正在尝试做的是通过以下步骤完成:
ZipFile.CreateFromDirectory(@"D:\Folder", @"Folder.zip");
作为一个侧面说明你的错误的原因是因为你试图打开一个目录,而不是一个文件。 File.OpenRead
用于打开文件以供读取,因为您提供了一个目录,所以会出现错误。如果要枚举特定文件夹中的文件或目录,则可以使用Directory.EnumerateFiles
或Directory.EnumerateDirectories
。
快速谷歌搜索:http://www.codeproject.com/Articles/37887/C-Zip-Files-and-or-Folders - 也许可以帮助你。 –
请参阅[如何阅读特定文件夹内的所有文件](http://stackoverflow.com/questions/5840443/how-to-read-all-files-inside-particular-folder)。 [在C#邮编夹]的 –
可能重复(http://stackoverflow.com/questions/905654/zip-folder-in-c-sharp) –