C#中用winrar和winzip解压缩zip文件
winrar的方法如下
string saves="";//要解压的文件路径
string sharepath2="";//解压后存放的路径
filePath="e " +saves+" "+sharepath2;
Process tt = Process.Start(winrarPath,filePath);
//winrarPath="***";------------->winrar.exe的完整路径
//filePath="****";------------->要解压文件的路径
string temp;
temp="x -o+ "+" "+"111.zip";
string a="\\";
string b="\\\\";
string temp1=temp.Replace(a,b);
System.Diagnostics.Process.Start("g:\\winrar.exe",temp1);
winzip的方法如下
winzip现在完全支持命令行方式的了,只需要下个WinZip Command Line Support Add-On Version 1.0(http://www.winzip.com/wzcline.htm
下载wzcline.exe)下载安装后有两个文件WZZIP.exe,WZUNZIP.EXE,一个是压缩,一个是解压。
压缩文件用 WZZIP.exe
通用格式:wzzip [options] zipfile [@listfile] [files...]
[options]包括:
-a 默认的操作,压缩文件
-a+ 压缩文件,并删除要压缩的文件
-b[drive|path] 是在另外的驱动器上创建临时压缩文件
-d 删除zip文件中指定的目标文件
-e<x|n|f|s|0> 是设置压缩比率,x最大,0最小
-f 替换zip文件中存在的文件
-h|-? 察看帮助
-v 创建一个压缩文件的列表信息
-@list 先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名压缩
...............(其他具体看帮助文件)
[@listfile] 是压缩文件的列表信息纪录
[files...] 则是要压缩的多个文件,用空格隔开,也可以用通配符
例:
压缩当前目录的所有文件
wzzip test.zip *.*
压缩类型为txt的所有文件
wzzip test.zip *.txt
压缩两个文件
wzzip test.zip abc.txt def.txt
压缩类型为txt的所有文件除了abc.txt
wzzip -xABC.TXT test.zip *.txt
压缩D:\docs下的所有类型为txt的文件及子目录
wzzip -rp test.zip d:\docs\*.txt
把zipit.1st里的文件更新到test.zip
wzzip -u test.zip @Zipit.lst
列出一个压缩文件的列表内容
wzzip -v test.zip
解压文件用WZUNZIP.exe
通过格式:wzunzip [options] zipfile [@listfile] [path] [files...]
[options]包括:
-c[m] 解压是显示文件列表在dos屏幕中
-d 重建zip文件中的目录结构
-f 只解压在zip文件里同目前文件夹存在的同名的文件,如果没有则不解压
-jhrs 忽视zip文件里的文件的隐藏、只读、系统属性
-Jhrs 只解压带有隐藏、只读、系统属性的文件
-n 只解压叫新的文件,如果要解压的文件比已存在的新则替换。
-o 不用通过yes来确定是否要替换文件
-v 创建一个压缩文件的列表信息
-@list 先创建一个包含所有要解压的文件的文件,然后按所包含的的文件名解压
...............(其他具体看帮助文件)
例如:
创建所有文件到当前目录下
wzunzip test.zip
从test.zip中创建abc.txt到当前目录下
wzunzip test.zip abc.txt
创建在test.zip中的目录结构及文件到当前目录下
wzunzip -d test.zip
创建在test.zip中的目录结构及文件到c:\docs下
wzunzip -d test.zip c:\docs从test.zip中创建包含在files.ist中的文件名的文件
wzunzip test.zip @files.lst
显示test.zip的文件列表内容
wzunzip -v test.zip
显示压缩文件中所有类型为txt的文件列表内容
wzunzip -v test.zip *.txt
[以上摘自阿舜的文章:http://www.dev-club.com/club/bbs/showEssence.asp?id=17712]
启动进程可以用System.Diagnostics.Process
的重载方法:
public static Process Start(
string fileName,
string arguments
);
记得要及时关闭进程(Kill方法)