我正在尝试使用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标签,只有一个删除文件...
答案 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