从Zipped文件夹中删除VBS文件夹

时间:2017-03-06 14:16:36

标签: vbscript zip

我正在尝试使用VBScript删除压缩文件夹。 zip文件还包含其他文件夹和文件。

编辑开始:基本代码来自:How to delete files from zip with VBScript 结束编辑

以下是我尝试将其删除的脚本的本地化示例:

zipfile = "D:\testFolder\zippers\TestIt\New folder\your.zip"
foldername   = "New folder"
destination     = "D:\testFolder\zippers\TestIt\New folder"

Set app = CreateObject("Shell.Application")
For Each f In app.NameSpace(zipfile).Items
  If f.Name = foldername Then
    app.Namespace(destination).MoveHere f, FOF_NOCONFIRMATION
  End If
Next

Set fso = CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder fso.BuildPath(destination, foldername), True

可悲的是,ZIP中的文件夹仍然存在。所以MoveHere看起来像是CopyHere而不是......很奇怪

任何人都可以帮忙吗? PS:没有delete-folder标签,只有一个删除文件...

1 个答案:

答案 0 :(得分:1)

如果您在复制someone else's code时给出了正确的归因,那就太好了。

话虽如此,看起来Shell.Application对象不能从zip存档中删除文件夹。在文件夹上调用MoveFile会将该嵌套文件夹中的所有文件移出存档,但会留下一个空(子)文件夹树。

要完全删除嵌套文件夹,您需要使用第三方工具,例如7-zip

Function qq(s) : qq = """" & s & """" : End Function

Set sh = CreateObject("WScript.Shell")
sh.Run "C:\path\to\7z.exe d " & qq(zipfile) & " " & qq(foldername), 0, True