在VBScript中使用CopyHere的.zip文件是否有大小限制?

在VBScript中使用CopyHere的.zip文件是否有大小限制?,vbscript,unzip,Vbscript,Unzip,我有一个vbscript,可以将多个zip文件提取到不同的位置。该代码适用于除一个文件外的所有文件。这一个不起作用的文件恰好大于6GB。我正在处理的下一个最大的文件大约是3.5GB 下面是一段代码 strFileDest = "path\to\some\dir1" strZIPname = "file1.zip" Call UnPack(strFileDest, strZIPname) strFileDest = "path\to\some\dir2" strZIPname = "file2

我有一个vbscript,可以将多个zip文件提取到不同的位置。该代码适用于除一个文件外的所有文件。这一个不起作用的文件恰好大于6GB。我正在处理的下一个最大的文件大约是3.5GB

下面是一段代码

strFileDest = "path\to\some\dir1"
strZIPname = "file1.zip" 
Call UnPack(strFileDest, strZIPname)

strFileDest = "path\to\some\dir2"
strZIPname = "file2.zip" 
Call UnPack(strFileDest, strZIPname)

Function UnPack(strZIPdest, strZIPname)
  Dim intOptions, objShell, objSource, objTarget

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objShell = CreateObject("Shell.Application")
  sSourceFile = objFSO.GetAbsolutePathName(strZIPname)
  Set objSource = objShell.NameSpace(sSourceFile).Items()
  Set objTarget = objShell.NameSpace(strZIPdest)

 intOptions = 256
 If objFSO.FolderExists(strZIPdest) Then
   objTarget.CopyHere objSource, intOptions
 Else
   MsgBox "Cannot complete unzip for " & strZIPname & ". The destination _
   directory (" & strZIPdest & ") could not be located.", 0, "Invalid"
 End If
End Function


我已经采取了一个较小的邮政编码,并将其重命名为不会复制的邮政编码。使用新的大小,脚本将解压该文件,以证明该文件的其余脚本工作正常。我还通过手动提取来验证zip是否有效。当我运行脚本时,脚本指向大zip,我也没有收到任何错误(我没有使用下一步错误恢复)。

是的,有。据我所知,它大约是2GB,虽然它是未经证明的,但我以前遇到过它。如果需要压缩比这更大的内容,请使用7zip的命令行版本


在windows Vista中,zip64支持阅读。但压缩文件夹的创建似乎仅限于经典的zip格式。最大文件大小为4GB,zip文件中有65535个条目。微软已经在windows xp中记录了超过2GB的压缩文件夹的问题。

所以,对读取有限制……提取呢?如果我右键单击并“全部提取…”它会工作。这不是VB CopyHere使用的同一个引擎吗?谢谢链接;实际上,我在研究解压方法时登陆了你的页面。虽然我正在使用的客户端已经安装了7zip,但我不愿使用它,而是支持使用本机方法。不过我可能会沿着那条路走。