如何从zip文件中提取单个文件/文件夹?

时间:2019-05-31 10:09:11

标签: vbscript zip unzip zipfile

基本上,类似于附件脚本,我希望能够提取位于zip文件中的文件或文件夹。但是,我想在没有第三方工具的情况下实现此目标,并且还希望与Windows的旧版本(2000或至少XP)兼容。我认为这意味着只能使用Shell对象(“ Shell.Application”)来尝试实现此目标?如果可以,怎么办?

我已经研究了使用Ionic.Zip ...的另一种方法,但这需要一个.Net版本,并非所有旧版本的Windows都可以。

这是我正在使用的解压缩脚本(从here找到):

'The location of the zip file.
ZipFile="C:\Test.Zip"
'The folder the contents should be extracted to.
ExtractTo="C:\Test\"

'If the extraction location does not exist create it.
Set fso = CreateObject("Scripting.FileSystemObject")
If NOT fso.FolderExists(ExtractTo) Then
   fso.CreateFolder(ExtractTo)
End If

'Extract the contants of the zip file.
set objShell = CreateObject("Shell.Application")
set FilesInZip=objShell.NameSpace(ZipFile).items
objShell.NameSpace(ExtractTo).CopyHere(FilesInZip)
Set fso = Nothing
Set objShell = Nothing

例如,一个名为“ resources.zip”的zip文件,在该zip中有一个名为“ a.txt”的文件和一个名为“ b”的文件夹,在“ b”内部有一个名为“ c”的文件.txt”。

如果我尝试从“ resource.zip”中提取“ a.txt”,则应将其保存在Test目录中;如果我尝试从“ resource.zip”中提取“ b”,则应具有一个测试目录中的新“ b”文件夹,其中包含“ c.txt”文件。

0 个答案:

没有答案
相关问题