Win 7+ 现在都带压缩/解压的软件了,为什么还要用第三方的压缩软件?
Clear
lcZip = Zip("C:\temp\", "C:\Test.ZIP")
? lcZip
*!*
******************************************
*!*
功
能:压缩文件函数。支持通配符,如*.prg,*.fr?等,支持子文件夹。
*!*
注意:此函数将覆盖已存在的zip文件,使用前应检查zip文件是否存在。
*!*
函数名:Zip(cSourceFile,cZipFileName[,cPassword])
*!*
返回值:逻辑值,压缩成功,返回真。
*!*
参
数:cSourceFile:字符型,准备压缩的文件列表,可以使用通配符,
*!*
不同文件使用|分隔,推荐使用相对路径,可以保存相对的路径信息,
*!*
如果使用绝对路径,则所有路径信息会被删除。
*!*
cZipFileName:字符型,要生成的压缩文件,比如Test.zip,可以使用相对路径或绝对路径。
*!*
类
型:字符型。
*!*
默认值:无。
*!*
示
例:lcZip = Zip("C:\temp\", "C:\Test.ZIP")
&& 压缩C:\temp\所有文件所到C:\Test.ZIP
*!*
******************************************
Function Zip(cSourceFile As String, cZipFileName As String)
*!*
https://technet.
*!*
http://www.
#DEFINE FONTS
0x14
#DEFINE FOF_SILENT
0x4
#DEFINE FOF_RENAMEONCOLLISION
0x8
#DEFINE FOF_NOCONFIRMATION
0x10
#DEFINE FOF_ALLOWUNDO
0x40
#DEFINE FOF_FILESONLY
0x80
#DEFINE FOF_SIMPLEPROGRESS
0x100
#DEFINE FOF_NOCONFIRMMKDIR
0x200
#DEFINE FOF_NOERRORUI
0x400
#DEFINE FOF_NOCOPYSECURITYATTRIBS
0x800
#DEFINE FOF_NORECURSION
0x1000
#DEFINE FOF_NO_CONNECTED_ELEMENTS
0x2000
cFlags = FOF_SILENT + FOF_NOCONFIRMATION + FOF_NOERRORUI
AERROR(arrayError)
lcRet = ""
If Parameters() <> 2
lcRet = "参数错误."
Else
Strtofile(Chr(0x50) + Chr(0x4B) + Chr(0x05) + Chr(0x06) + Replicate(Chr(0), 18), cZipFileName)
oShell = Createobject("Shell.Application")
? oShell.NameSpace(cZipFileName).Count
? arrayError(2)
For Each oFile In oShell.NameSpace(cSourceFile).items
oShell.NameSpace(cZipFileName).CopyHere(oFile)
Endfor
Endif
lcRet = "压缩正确."
oShell = .Null.
Return lcRet
Endfunc