2

我正在.NET 3.5 中编写一个 Winform 应用程序,我需要解压缩一个 .rar 或 .zip 文件。
我找到了很多东西,但我没有找到任何第 3 方。我无法更改为 .NET 4 或 .NET 4.5。

谢谢您的帮助。霍伯特

4

4 回答 4

4

如果只需要解压 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 文件

于 2017-03-28T09:51:55.917 回答
3

http://www.codeproject.com/Articles/645214/Compress-Decompress-Zip-Files-w怎么样

不是最好的解决方案,但如果您需要基本的 zip/unzip 功能,效果很好。

免责声明:我是文章的作者。

于 2013-08-31T13:16:28.247 回答
2

.NET 框架不支持 .RAR 文件,并且直到 .NET 4.5 才支持 Zip 文件

如果您想在 .NET 3.5 中支持 .ZIP(或 .RAR),则需要第三方解决方案。例如,DotNetZip库支持 .NET 3.5,并且完全可以处理 .ZIP 文件。

有支持 RAR 的商业产品,例如Chilkat RAR

于 2013-05-27T18:16:42.670 回答
1

实际上,.NET 3.5 使用 DeflateStream 生成 .zip 文件。您必须自己处理标头,但 PKWare 已经发布了规范,您可以创建结构并使用 Streams。

不需要第三方代码……但是,您必须以更传统、更老派的方式来处理它。他们并不完全解压缩自己。

于 2014-05-12T14:23:24.303 回答