vba 复制和替换 zip 文件夹中的文件

vba copying and replacing files in zip folder

我创建了一个 VBA 宏,可以根据一些参数从 folder/subfolders 中提取文件。这包括查找满足这些参数的 zip 文件夹并将它们复制到新目录,以便也可以搜索每个文件。我遇到的问题是这些 zip 中的许多文件都是重复的,并且由于项目是自动化的,我不能坐在那里每次弹出时都按下不复制按钮。有没有办法搜索 zip 文件并忽略重复文件?我的这部分代码是:

Sub Unzip(fileName As String, mainSubfolder As String)

Dim sourceDir As String, fileString As String
Dim FileNameFolder As Variant
Dim oApp As Object

sourceDir = "\Filesrv02\depts\AR\EDIfiles\Remits"
fileString = mainSubfolder + fileName

    If Right(sourceDir, 1) <> "\" Then
        sourceDir = sourceDir & "\"
    End If

    FileNameFolder = sourceDir & "Unzipped"

    If Dir(FileNameFolder, vbDirectory) = vbNullString Then
        MkDir FileNameFolder
    End If

    Set oApp = CreateObject("Shell.Application")
        oApp.Namespace(FileNameFolder).CopyHere oApp.Namespace(fileString).Items
End Sub

最后两行是我将文件从 zip 文件夹复制到名为 "Unzipped" 的新文件夹中的位置。但是,我不确定如何获取 zip 文件夹中的每个文件以说明它是否已经存在,请忽略它。如有任何建议,我们将不胜感激!

也许这有助于: (摘自:)

With oApp.NameSpace(ZipFile & "\")
  If OverwriteFile Then
     For Each fil In .Items
        If FSO.FileExists(DefPath & fil.Name) Then
           Kill DefPath & fil.Name
        End If
     Next
  End If
  oApp.NameSpace(CVar(DefPath)).CopyHere .Items
End With