2016-11-04 109 views
0

我正在開發一個Visual Basic項目,我陷入了一件超級簡單的事情。解壓縮文件。在Visual Basic .NET中提取Zip文件

我有以下進口

`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 

我沒有得到任何的異常,它只是不解壓,它基本上跳過就在該塊。

請幫忙!

+0

你會收到任何錯誤信息嗎? – McNets

+0

沒有錯誤(請參閱編輯) 只是不運行 –

+0

爲什麼要聲明一個空的ExtractToDirectory()方法? – McNets

回答

0

根據你的代碼,你繼承了ZipFile類的方法ExtractToDirectory,它什麼都不做。

Public NotInheritable Class ZipFile 
    Public Shared Sub ExtractToDirectory(sourceArchiveFileName As String, 
             destinationDirectoryName As String) 
    End Sub 
End Class 

要解決此問題,請從代碼中簡單地刪除此方法。

0

您自己聲明瞭ZipFile類,而您應該使用System.IO.Compression命名空間中的現有類。因此,只刪除以下部分代碼:

Public NotInheritable Class ZipFile 
    Public Shared Sub ExtractToDirectory(
    sourceArchiveFileName As String, 
    destinationDirectoryName As String 
) 
    End Sub 
End Class 

...並且所有內容都應按預期工作。