【发布时间】:2013-05-22 14:55:49
【问题描述】:
我正在用 .NET 3.5 编写一个 Winform 应用程序,我需要解压缩一个 .rar 或 .zip 文件。
我找到了很多东西,但我没有找到任何第 3 方。
我无法更改为 .NET 4 或 .NET 4.5。
感谢您的帮助。 霍伯特
【问题讨论】:
-
之前被问过很多次了。
标签: c# winforms .net-3.5 zip unzip
我正在用 .NET 3.5 编写一个 Winform 应用程序,我需要解压缩一个 .rar 或 .zip 文件。
我找到了很多东西,但我没有找到任何第 3 方。
我无法更改为 .NET 4 或 .NET 4.5。
感谢您的帮助。 霍伯特
【问题讨论】:
标签: c# winforms .net-3.5 zip unzip
如果只需要解压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
不是最好的解决方案,但如果您需要基本的压缩/解压缩功能,效果很好。
免责声明:我是文章的作者。
【讨论】:
.NET 框架不支持 .RAR 文件,也不支持Zip files until .NET 4.5。
如果您想在 .NET 3.5 中支持 .ZIP(或 .RAR),则需要第三方解决方案。例如,DotNetZip 库支持 .NET 3.5,并且完全可以处理 .ZIP 文件。
有支持RAR的商业产品,例如Chilkat RAR。
【讨论】:
实际上,.NET 3.5 使用 DeflateStream 生成 .zip 文件。您必须自己处理标头,但 PKWare 已发布规范,您可以创建结构并使用 Streams。
不需要第三方代码……但是,您必须以更传统、更老派的方式来处理它。他们不会完全解压缩自己。
【讨论】: