0

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

在不使用任何外部库的情况下如何做到这一点?

4

2 回答 2

0

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

于 2013-08-11T22:57:12.807 回答
0

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

要在 VB.Net 中进行这项工作,您需要添加对 Microsoft Shell 控件和自动化的 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
于 2013-08-11T20:25:53.723 回答