我正在.NET 3.5 中编写一个 Winform 应用程序,我需要解压缩一个 .rar 或 .zip 文件。
我找到了很多东西,但我没有找到任何第 3 方。我无法更改为 .NET 4 或 .NET 4.5。
谢谢您的帮助。霍伯特
如果只需要解压 zip 文件,则不需要添加外部第三方库。
您只需要在 Visual Studio 的引用管理器中的 COM 选项卡中添加对Microsoft Shell 控件和自动化的引用。
private static void Unzip(String sourceFile,String destination)
{
Shell32.ShellClass sc = new Shell32.ShellClass();
Shell32.Folder SrcFlder = sc.NameSpace(sourceFile);
Shell32.Folder DestFlder = sc.NameSpace(destination);
Shell32.FolderItems items = SrcFlder.Items();
DestFlder.CopyHere(items, 20);
}
有了这个,您不必在您的应用程序中分发任何额外的 dll 文件。
http://www.codeproject.com/Articles/645214/Compress-Decompress-Zip-Files-w怎么样
不是最好的解决方案,但如果您需要基本的 zip/unzip 功能,效果很好。
免责声明:我是文章的作者。
.NET 框架不支持 .RAR 文件,并且直到 .NET 4.5 才支持 Zip 文件。
如果您想在 .NET 3.5 中支持 .ZIP(或 .RAR),则需要第三方解决方案。例如,DotNetZip库支持 .NET 3.5,并且完全可以处理 .ZIP 文件。
有支持 RAR 的商业产品,例如Chilkat RAR。
实际上,.NET 3.5 使用 DeflateStream 生成 .zip 文件。您必须自己处理标头,但 PKWare 已经发布了规范,您可以创建结构并使用 Streams。
不需要第三方代码……但是,您必须以更传统、更老派的方式来处理它。他们并不完全解压缩自己。