搜索文章:

首页  |  Java技术  |  Asp.net  |  Asp编程  |  VC/C++  |  Delphi  |  VB编程

在服务器端调用winzip对上传的多个文件压缩

如何在服务器端调用winzip命令行对上传的多个文件打包压缩? 

要解决这个问题,首先要了解一下windows scripting host,简称为wsh!下面引用一下微软给的解释: 
************************************************************************ 
* wsh是微软脚本技术系列中的一种,简单讲,就是提供了一种脚本环境, * 
* 在这个环境中,预定义了一些对象,同时也可以使用com里的其他对象。 * 
* 他使用一种脚本引擎来对脚本解释执行,微软自己支持vbscript和jscript, * 
* 第三方也可以开发自己的脚本引擎。 * 
************************************************************************ 
具体点,就是你先编好一些脚本文件(微软自带例子若干,后缀.vbs或 .js), 
然后用一个程序对他解释执行,这个程序就叫windows scripting host,程序 
的名字是wscript.exe(或者命令行的cscript.exe),你可以查看一下你的机器 
里有没有这两个文件,就知道有没有wsh了。(win2000是在winnt/system32/下) 
这非常像批处理文件,只不过文件里不是命令行,而是脚本语言写的脚本。 

再来简单介绍一下wsh自带的几个内置对象包括: 

1.由 wscript.exe 提供的对象 
wscript 作为 wscript 公开给脚本引擎。 
wsharguments 未公开;通过 wscript.arguments 属性访问。 入 

2.由 wshom.ocx 提供的对象。 
wshshell 自动对象。progid 是 wscript.wshshell。 
(注:这个就是我们要用到的,可以执行dos命令) 
wshnetwork 自动对象。progid 是 wscript.wshnetwork。 
wshshortcut 未公开;通过 wshshell.createshortcut 方法访问。 
wshurlshortcut 未公开;通过 wshshell.createshortcut 方法访问。 
wshcollection 未公开;通过 wshnetwork.enumnetworkdrives 或 wshnetwork.enumprinterconnection 方法访问。 
wshenvironment 未公开;通过 wshshell.environment 属性访问。 
wshspecialfolders 未公开;通过 wshshell.folder 属性访问。 

他们主要可以完成环境变量的获取,网络登陆,驱动器映射,快截方式创建, 
程序加载,特殊文件夹(如系统文件夹)信息获取等功能。 

如果你的系统里支持ado等com部件,你同样可以使用, 
下面这个例子演示打开写字板查看文本文件,同时创建一个文本文件并写入一 
段话,你可以把他拷贝到写字板中,然后以.vbs为后缀存盘,之后双击他, 

test.vbs 
********************* 
下面用shell对象启动程序 
********************* 
set wshshell = wscript.createobject("wscript.shell") 
wshshell.run ("notepad " & wscript.scriptfullname) 


*********************************************** 
用com对象scripting.filesystemobject操作文本文件 
*********************************************** 
set fs = wscript.createobject("scripting.filesystemobject") 
set a = fs.createtextfile("c:\testfile.txt", true) 
a.writeline("这是一个测试。") 
a.close 

也可以在asp等web编程语言中应用 
<script language="vbscript.encode" runat=server> 
上面用shell对象启动程序 
set wshshell = server.createobject("wscript.shell") 
issuccess = wshshell.run ("d:\winnt\system32\cmd.exe" ,1, true) 
if issuccess = 0 then 
response.write " 命令成功执行!" 
else 
response.write " 命令执行失败!权限不够或者该程序无法在dos状态下运行" 
end if 
</script> 
注: 
1.其中runat=server必须要有 
2.set wshshell = wscript.createobject("wscript.shell") 
要改为set wshshell = server.createobject("wscript.shell"), 
3.参数1代表sw_shownormal, 激活并显示一个窗口。若窗口是最小化或最大化,则恢复到其原来的大小和位置。 
4.true代表返回执行的错误,false或者为指定代表脚本继续执行而不等待进程结束。 
5.调用wsh的内置对象了,可以象调用函数和过程一样。 
如call wshshell.run ("d:\winnt\system32\cmd.exe" ,1, true) 

如果你对wsh感兴趣,想了解更多的话,请察看 
http://msdn.microsoft.com/library/d...onwshbasics.asp 
http://www.dev-club.com/club/bbs/sh...ce.asp?id=11136 

现在我们言归正传来看看如何对文件进行压缩和解压! 
大家都知道winzip对文件解压和压缩都易如反掌,但是如何通过程序和命令行对其调用呢? 
当然winzip的作者已经开发出 
winzip command line support add-on version 1.0 
大家去可以去http://www.winzip.com/wzcline.htm 下载wzcline.exe! 
前提是本机须安装winzip8.0或更高版本的支持,如果你不是winzip8.0,去 
http://www.winzip.com/download.htm 下载! 

下载后,直接安装就可以! 
就会在winzip的目录中产生winzip命令行帮助文件和程序

()

相关文章:
© 2006   www.java-asp.net