看起来在C#中没有内置的Library/API来解压缩zip文件.我正在寻找一个免费的(更好的开源)库/ API,它可以与.Net 3.5 + VSTS 2008 + C#一起解压zip文件并将所有文件解压缩到一个特定的文件夹中.
任何推荐的库/ API或样品?
Sam*_*ron 34
GPL
http://www.icsharpcode.net/OpenSource/SharpZipLib/
或限制较少的Ms-PL
http://www.codeplex.com/DotNetZip
为了完成这个答案,.net框架有了ZipPackage,我用它做得不太成功.
Sim*_*zie 24
如果您只想将文件内容解压缩到一个文件夹,并且您知道只能在Windows上运行,则可以使用Windows Shell对象.我dynamic
在本例中使用了Framework 4.0,但您可以使用相同的结果Type.InvokeMember
.
dynamic shellApplication = Activator.CreateInstance(Type.GetTypeFromProgID("Shell.Application"));
dynamic compressedFolderContents = shellApplication.NameSpace(sourceFile).Items;
dynamic destinationFolder = shellApplication.NameSpace(destinationPath);
destinationFolder.CopyHere(compressedFolderContents);
Run Code Online (Sandbox Code Playgroud)
您可以使用FILEOP_FLAGS来控制CopyHere
方法的行为.
Che*_*eso 17
DotNetZip易于使用.这是一个解压缩样本
using (var zip = Ionic.Zip.ZipFile.Read("archive.zip"))
{
zip.ExtractAll("unpack-directory");
}
Run Code Online (Sandbox Code Playgroud)
如果您有更复杂的需求,例如您想要选择要提取的条目,或者是否有密码,或者您想要控制提取的文件的路径名,等等,那么有很多选项. 有关更多示例,请查看帮助文件.
DotNetZip是免费的开源软件.
Max*_*sky 10
在过去,我使用过DotNetZip(MS-PL),SharpZipLib(GPL)和用于C#的7ZIP SDK(公共域).它们都很好用,而且是开源的.
在这种情况下我会选择DotNetZip,这里是C#Examples页面的一些示例代码:
using (ZipFile zip = ZipFile.Read(ExistingZipFile))
{
foreach (ZipEntry e in zip)
{
e.Extract(TargetDirectory);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27153 次 |
最近记录: |