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