在VB.Net中提取ZIP包

时间:2013-08-11 18:43:13

标签: .net vb.net zip extract

我需要使用VB.Net从ZIP包中提取文件。

如何在不使用任何外部库的情况下完成这项工作?

2 个答案:

答案 0 :(得分:0)

是的,您可以使用内置shell功能来解压缩文件。使用的方法是CopyHere,this link包含VBScript和VB6示例以及可以使用的标志值。

要在VB.Net中使用此功能,请向Microsoft Shell Controls和Automation添加COM引用,并添加类似于以下内容的代码:

Public Sub ExtractAll(sSourceFile As String, sTargetDir As String)

    If Not IO.File.Exists(sSourceFile) Then
        Throw New ArgumentException("Source file does not exist", "sSourceFile")
    End If

    If Not IO.Directory.Exists(sTargetDir) Then
        IO.Directory.CreateDirectory(sTargetDir)
    End If

    Dim oShell As New Shell32.Shell
    Dim oOutputDir = oShell.NameSpace(sTargetDir)
    Dim oInput = oShell.NameSpace(sSourceFile)

    ' The value of 4 indicates you don't want the progress dialog to be shown
    oOutputDir.CopyHere(oInput.Items, 4)

End Sub

答案 1 :(得分:0)

Zipstorer(http://zipstorer.codeplex.com/)是一个压缩/解压缩.zip文件的类,它是c#,但如果你不想依赖第三方组件,这是一个很好的解决方案