尝试压缩文件 VB.NET 2003 时出错
Posted
技术标签:
【中文标题】尝试压缩文件 VB.NET 2003 时出错【英文标题】:Error when trying to zip files VB.NET 2003 【发布时间】:2012-08-23 19:02:54 【问题描述】:我必须使用 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)
再次感谢那些花时间帮助我的人!
【问题讨论】:
【参考方案1】:看起来您尝试使用的库是旧的 COM dll。这意味着您必须先使用 regsvr32.exe 注册 dll,然后才能使用它。但是,我建议使用本机 .NET(托管)库。除非它不能满足您的需求,否则我只建议查看 GZipStream
类,它是 .NET 框架的一部分。
【讨论】:
看起来 GZipStream 类不属于 .NET Framework 1.1 的一部分:/ @devGabriel CGZipLibrary 也不是 :) 我认为即使您拥有旧版本的 Visual Studio,您仍然应该能够使用 .NET Framework 2.0 库。【参考方案2】:你试过这个吗?这个不错: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 网站。
【讨论】:
是的,我试过了。看起来这个 dll 的版本不受 Visual Studio 2003 或类似的支持。当我尝试将 dll 添加为对我的项目的引用时,Visual Studio 给了我这个错误:无法添加对“Ionic.Zip.dll”的引用。这不是有效的程序集或 COM 组件。只能引用扩展名为“dll”的程序集和 COM 组件。请确保该文件是可访问的,并且该文件是有效的程序集或 COM 组件。 @devGabriel 更新了我的答案【参考方案3】:我在大多数项目中使用的另一个选项是#ZipLib (SharpZipLib),可在此处下载:
http://www.icsharpcode.net/opensource/sharpziplib/Download.aspx
VB 和 C# 的文档和示例可在同一站点上找到。它具有适用于 .NET 框架 1.1 以及更高版本的特定二进制程序集 (dll)。您遇到的其他一些库很可能是为 .NET 2.0 或更高版本编译的,这在 VS2003 中不起作用。
不要让名字欺骗了你——它是用 C# 编写的(因此得名),但编译后的程序集在 VB.NET 中工作得很好。它支持 Zip、GZip、tar 和 BZip2 档案。
【讨论】:
谢谢,但我使用了另一种方法。以上是关于尝试压缩文件 VB.NET 2003 时出错的主要内容,如果未能解决你的问题,请参考以下文章
使用 vb.net 和 System.IO.Compression (.Net 4.5) 压缩文件
一起使用 django-storages 和 django-compressor 时尝试压缩静态文件时出错