我创建了一个VBA宏,它根据许多参数从文件夹/子文件夹中提取文件。这包括查找满足这些参数的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文件夹中的每个文件,以确定它是否已存在,请忽略它。任何建议将不胜感激!
答案 0 :(得分:1)
也许这会有所帮助: (摘自:https://stackoverflow.com/a/14987890/3883521)
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