VisualFoxPro应用程序添加文件压缩功能

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

DECLARE SHORT addUNZIP_Decrypt IN AUNZIP32 STRING @ sPassw
DECLARE SHORT addUNZIP_Overwrite IN AUNZIP32 SHORT @ nOvLevel
DECLARE SHORT addUNZIP IN AUNZIP32
addUNZIP_Initialise()
addUNZIP_SetParentWindowHandle(HWND)
* addUNZIP_Register("RegistrationName", RegistrationNumber)
* 如果使用的是本动态链接库的注册版本,则可以添加上面一行
* 其作用是在压缩文件中使用密码保护

* 如果没有指定压缩文件名,则返回0(没有文件被解压缩)
IF Params < 2
RETURN 0
ENDIF
ENDIF
* 如果没有指定解压缩目标目录,则响铃并返回0(没有文件被解压缩)
IF Params < 3
?? CHR(7)
MESSAGEBOX(’缺少解压缩参数!’,0, ’AUNZip 警告!’)
RETURN 0
ENDIF
* 如果存在解压缩参数,则获取解压缩参数
IF Params > 3
UnZIPparams = ALLT(UnZIPparams)
PRIVATE LastPos, PASSWORD, nCurPos
LastPos = LEN(UnZIPparams) + 1
* 检查是否使用密码
nCurPos = ATC(’S’, UnZIPparams)
IF nCurPos > 0
cPassWord = SUBSTR(UnZIPparams, nCurPos+1)
addUNZIP_Decrypt(cPassWord)
UnZIPparams = LEFT(UnZIPparams, nCurPos -1)
ENDIF
* 检查是否恢复目录信息
nCurPos = ATC(’D’, UnZIPparams)
IF nCurPos > 0
addUNZIP_RestoreStructure(1)
ENDIF
* 检查是否进行文件更新
nCurPos = ATC(’F’, UnZIPparams)
IF nCurPos > 0
addUNZIP_RestoreStructure(1)
ENDIF
* 检查是否覆盖文件
DO CASE
* 全部覆盖
CASE ’OA’ $ UnZIPparams
addUNZIP_Overwrite(0x0b)
* 不覆盖
CASE ’O0’ $ UnZIPparams
addUNZIP_Overwrite(0x0c)
* 提问是否覆盖
CASE ’OU’ $ UnZIPparams
addUNZIP_Overwrite(0x0a)
ENDCASE
IF nCurPos > 0
addUNZIP_RestoreStructure(1)
ENDIF
ELSE
addUNZIP_Overwrite(0x000a)
ENDIF
* 确认需要解压缩的压缩文件名
addUNZIP_ArchiveName(sArchive)
* 确认解压缩目标路径
addUNZIP_ExtractTo(ALLT(sDir))
* 确认需要进行解压缩的文件
sExtractFiles = IIF(Params<4, "*.*", ALLT(STRTRAN(sExtractFiles, ’ ’, ’|’)))
* 构造解压缩信息
addUNZIP_Include(sExtractFiles)
* 解压缩文件并返回被解压缩的文件数目
RETURN addUNZIP()

[补充说明]
动态链接库AZIP.DLL和AUNZIP.DLL是NetCom公司英国分部的工程师Stephen Darlington编写的共享软件AddZip中的一部分

上一页234下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答