尝试压缩文件VB.NET 2003时出错

时间:2012-08-23 19:02:55

标签: vb.net com zip visual-studio-2003

我必须使用Visual Studio和VB.NET 2003创建一个简单的zip文件。

经过一些谷歌搜索,我到了这个页面:http://www.digioz.com/tutorials/zip_unzip_vbNET/Zip_and_Unzip_VB_NET_1.html它基本上为我提供了3个DLL,其中包含准备压缩文件的类。 当我尝试创建类的实例时,如教程告诉我:

Dim zp As New CGZipLibrary.CGZipFiles

我收到此错误:

COM object with CLSID {293364BA-43F8-11D3-BC2D-4000000A2806} is either not valid or not registered.

想法? 如果有人使用VB.NET 2003更好/更容易地压缩文件,那么它也会有所帮助。

感谢。

修改

感谢所有回答的人,但我使用了与建议的方法不同的方法来压缩文件。 我使用了Microsoft.VisualBasic.Interaction类的Shell function,如下所示:

Shell("zip -j " & fileName, AppWinStyle.Hide, True)

再次感谢那些致力于帮助我的人!

3 个答案:

答案 0 :(得分:1)

看起来您尝试使用的库是旧的COM dll。这意味着您必须先使用regsvr32.exe注册该DLL,然后才能使用它。但是,我建议使用本机.NET(托管)库。除非它不能满足您的需求,否则我建议您查看作为.NET框架一部分的GZipStream类。

答案 1 :(得分:0)

你试过这个吗?这非常好:ionic.zip.reduced,一个dotnetzip库。

示例:

Using zip As ZipFile = New ZipFile()
     zip.AddFile("c:\photos\personal\7440-N49th.png")
     zip.AddFile("c:\Desktop\2008_Annual_Report.pdf")
     zip.AddFile("ReadMe.txt")
     zip.Save("MyZipFile.zip")
End Using

More VB.NET examples of Ionic.ZIP

更新:

您的问题是VS2003无法使用在较新(例如VS2005)版本的VS中创建的dll的定位。对于许多人试图使用它,创建了一个工具,您可以下载here。有关详细信息,请访问this网站。

答案 2 :(得分:0)

我在大多数项目中使用的另一个选项是#ZipLib(SharpZipLib),可在此处下载:

http://www.icsharpcode.net/opensource/sharpziplib/Download.aspx

VB和C#的文档和示例可在同一站点获得。它具有.NET Framework 1.1的特定二进制程序集(dll)以及更高版本。您运行的其他一些库可能是针对.NET 2.0或更高版本编译的,这在VS2003中不起作用。

不要让这个名字欺骗你 - 它是用C#编写的(因此名称),但编译的程序集在VB.NET中运行得很好。它支持Zip,GZip,tar和BZip2档案。