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方法)

Contributors: FHL