在线压缩/在线解压缩是一个很实用的东东,今天就为大家实例讲解一下如何用ASP来实现:
<% 
’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 
’\\ 
’\\ 1. c:\windows\system32\cmd.exe 
’\\ 拷贝把本文件所在的路径 
’\\ 
’\\ 2. 把 c:\program\winrar\rar.exe 
’\\ 拷贝把本文件所在的路径 并改名为WinRAR.exe 
’\\ 
’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 
’\\ 
’\\ compressPath(byVal s) 
’\\ 压缩文件的路径 | 字符串变体 
’\\ 
’\\ decompressPath(byVal s) 
’\\ 解压缩文件的文件夹 | 字符串变体 
’\\ 
’\\ compress 
’\\ 在线压缩 
’\\ 
’\\ decompress 
’\\ 在线解压缩 
’\\ 
’\\ POWER BY MIRACLE (BLUEDESTINY) 
’\\ 
’\\ EMAIL : Bluedestiny[at]126.com 
’\\ 
’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
OPTION EXPLICIT
class COMPRESS_DECOMPRESS_FILES
private version, copyright 
private oWshShell, oFso 
private sCompressPath, sDecompressPath 
private sub class_initialize 
version="COMPRESS_DECOMPRESS_FILES BUILDER 20051015" 
copyright="POWER BY MIRACLE (BLUEDESTINY)" 
Set oFso=server.CreateObject("scripting.FileSystemObject") 
Set oWshShell=server.CreateObject("Wscript.Shell") 
writeLn(version+"<br>"+copyright) 
end Sub 
private sub class_terminate 
if isobject(oWshShell) then set oWshShell=nothing 
if isobject(oFso) then set oFso=nothing 
end Sub 
private function physicalPath(byVal s) 
physicalPath=server.mappath(s) 
end Function 
private sub validateFile(byVal s) 
if oFso.FileExists(s) then exit sub 
if oFso.FolderExists(s) then exit sub 
callErr "file(folder) not exists!" 
end Sub 
private sub createFolder(byVal s) 
if oFso.FolderExists(s) then exit Sub 
oFso.createFolder(s) 
end Sub 
private sub writeLn(byVal s) 
response.write "<p>" + s + "</p>" + vbCrlf 
end Sub 
private sub callErr(byVal s) 
writeLn "<p><b>ERROR:</b></p>" + s 
response.End 
end sub 
private sub callSucc(byVal s) 
writeLn "<p><b>SUCCESS:</b></p>" + s 
end Sub
public sub compress 
validateFile(sCompressPath) 
oWshShell.run("WinRAR A " + sCompressPath + " " + sDecompressPath & "") 
if Err.number>0 then callErr("compress lost!") 
callSucc("compress <b>" + sDecompressPath + "</b> to <b>" + sCompressPath + ".rar</b> successfully!") 
end Sub 
public sub decompress 
validateFile(sCompressPath) 
createFolder(sDecompressPath) 
oWshShell.run("WinRAR X " + sCompressPath + " " + sDecompressPath & "") 
if Err.number>0 then callErr("decompress lost!") 
callSucc("decompress <b>" + sCompressPath + ".rar</b> to <b>" + sDecompressPath + "</b> successfully!") 
end sub
public property Let compressPath(byVal s) 
sCompressPath=physicalPath(s) 
end property 
public property Let decompressPath(byVal s) 
sDecompressPath=physicalPath(s) 
end property
End class 
%> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Generator" CONTENT="EditPlus"> 
<META NAME="Author" CONTENT=""> 
<META NAME="Keywords" CONTENT=""> 
<META NAME="Description" CONTENT=""> 
<style> 
* { 
font-size:10.2pt; 
font-family:tahoma; 
} 
</style> 
</HEAD>
<BODY> 
<% 
’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ 
’\\ 
’\\ 设有压缩文件 compress.rar 
’\\ 需压缩文件 decompressFolder 文件夹 
’\\ 
’\\ 将 compress.rar 解压缩至 1 文件夹 
’\\ 将 decompressFolder 文件夹 压缩至 2.rar 
’\\ 
’\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
dim oExample
set oExample=new COMPRESS_DECOMPRESS_FILES 
oExample.compressPath="decompressFolder" 
oExample.decompresspath="1" 
oExample.compress
oExample.compressPath="compress" 
oExample.decompresspath="2" 
oExample.decompress
set oExample=nothing 
%> 
</BODY> 
</HTML>