我有一个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时运行脚本时,我也没有收到错误(我没有使用 On Error resume next )。
答案 0 :(得分:0)
是的。据我所知,它大约2GB,虽然它没有记录,但我以前遇到过它。如果需要压缩大于此值的内容,请使用命令行版本7zip。
答案 1 :(得分:0)
从Windows Vista,支持zip64阅读。但是压缩文件夹的创建似乎仅限于经典的zip格式。 4GB最大文件大小,zip文件中65535个条目。而且,微软已经在windows xp中记录了大于2GB的压缩文件夹的问题。