在 Visual Basic .NET 中提取 Zip 文件
Posted
技术标签:
【中文标题】在 Visual Basic .NET 中提取 Zip 文件【英文标题】:Extracting Zip File in Visual Basic .NET 【发布时间】:2016-11-04 16:43:24 【问题描述】:我正在开发一个 Visual Basic 项目,但我遇到了一些超级简单的问题。解压文件。
我有以下导入
`Imports System.Net
Imports System
Imports System.IO
Imports System.IO.Compression`
我的参考文献如下
System
System.Core
System.Data
System.Data.DataSetExtensions
System.Deployment
System.Drawing
System.IO.Compression
System.IO.Compression.FileSystem
System.Net.Http
System.Windows.Forms
System.Xml
System.Xml.Linq
所以我的代码应该做的是检查是否安装了软件, 如果不是,它将下载一个已安装的 zip 文件。
下载 zip 后,应将其解压缩并运行设置。
除此代码块外,一切正常:
Private Sub client_OMSADownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
MessageBox.Show("Download Complete")
Try
ZipFile.ExtractToDirectory("C:\end.zip", "C:\end")
Catch ex As Exception
MsgBox("Can't Extract file" & vbCrLf & ex.Message)
End Try
End Sub
Public NotInheritable Class ZipFile
Public Shared Sub ExtractToDirectory(
sourceArchiveFileName As String,
destinationDirectoryName As String
)
End Sub
End Class
我没有例外,它只是不解压缩,它基本上跳过了块。
请帮忙!
【问题讨论】:
您是否收到任何错误消息? 没有没有错误(见编辑)只是没有运行 为什么要声明一个空的 ExtractToDirectory() 方法? 因为我放错了,它在我的代码中是这样的(编辑帖子)公共不可继承类ZipFile公共共享子提取目录(sourceArchiveFileName As String,destinationDirectoryName As String)End Sub End Class 默认情况下,ZipFile 中未定义 ExtractToDirectory 【参考方案1】:根据您的代码,您继承了 ZipFile 类的 ExtractToDirectory
方法,它什么都不做。
Public NotInheritable Class ZipFile
Public Shared Sub ExtractToDirectory(sourceArchiveFileName As String,
destinationDirectoryName As String)
End Sub
End Class
要解决此问题,只需从代码中删除此方法即可。
【讨论】:
【参考方案2】:您自己声明了ZipFile
类,而您应该使用System.IO.Compression
命名空间中的现有类。因此,只需删除以下部分代码:
Public NotInheritable Class ZipFile
Public Shared Sub ExtractToDirectory(
sourceArchiveFileName As String,
destinationDirectoryName As String
)
End Sub
End Class
...一切都应该按预期进行。
【讨论】:
以上是关于在 Visual Basic .NET 中提取 Zip 文件的主要内容,如果未能解决你的问题,请参考以下文章
在 asp.net 中插入后获取主键(visual basic)
在 asp.net(访问数据库)中编写更新查询(visual basic)
Visual Basic .Net 中等效的公共虚拟外部字符串
在 Visual Basic VB.Net 2010 中使用 System.DateTime 类型作为可选参数