您的位置:首页 > 编程语言 > ASP

asp利用winrar解压缩文件

2015-07-22 13:15 453 查看
'当前文件夹路径 server.MapPath("./")
'网站根目录  server.MapPath("/")

Dim strZipFolder     ' 待压缩的文件夹
Dim strRarFile         ' 生成的压缩文件名
Dim strUnZipFolder    ' 解压文件夹
Dim strCmd             ' 命令行

strZipFolder =  Server.MapPath("./") & "\1.txt"
strRarFile  =  Server.MapPath("./") &"\"& "Test.Rar"
strUnZipFolder =  Server.MapPath("./UnZip") & "\"

' 构造命令行
'-----------------------------------------------
'使用参数说明
'命令 A - 添加文件到压缩文件
'命令 X - 以完整路径名称从压缩文件解压压缩
'开关 -IBCK  -  在后台运行 WinRAR
'开关 -R  -  连同子文件夹
'开关 -EP1  -  从名称中排除主文件夹
'开关 -Y  -  假设全部的询问回应皆为“是”
'------------------------------------------------
If Request.QueryString("act") = "zip" Then
' Fso测试用,生成压缩文件前删除同名文件.
' 这里也许可以有开关设置可以直接覆盖原文件的,没找着,反正这里主要是看如何调用外部程序的.
Dim objFso
Set objFso = Server.CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(strRarFile) Then objFso.DeleteFile(strRarFile)
Set objFso = Nothing
strCmd = "winrar a -ibck -r -ep1 -y " & strRarFile & " " & strZipFolder  '压缩
Else
strCmd = "winrar x -ibck -r -y " & strRarFile & " " & strUnZipFolder  '解压
End If

'执行命令行
Dim objShell
Dim intSecceed
Set objShell = Server.CreateObject("WScript.Shell")
Response.Write(strCmd & "<hr>")
intSecceed = objShell.Run(strCmd,0,True)
If intSecceed = 0 Then
Response.Write("命令成功执行,返回码:" & intSecceed)
Else
Response.Write("命令执行失败,返回码:" & intSecceed)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: