c#调用7z压缩和解压缩文件
来源:互联网 发布:恒腾网络 福利待遇 编辑:程序博客网 时间:2024/04/30 09:12
1.首先需要下载7z.exe,可以通过安装7-zip;
2.在安装目录下找到7z.exe,拷贝到自己的程序目录下;
整理的一个帮助类,代码如下:
public class ZipHelper { // Fields private string _7zInstallPath = @"C:\Program Files\7-Zip\7za.exe"; // Methods public ZipHelper(string str7zInstallPath) { this._7zInstallPath = str7zInstallPath; } /// <summary> /// 压缩文件夹目录 /// </summary> /// <param name="strInDirectoryPath">指定需要压缩的目录,如C:\test\,将压缩test目录下的所有文件</param> /// <param name="strOutFilePath">压缩后压缩文件的存放目录</param> public void CompressDirectory(string strInDirectoryPath, string strOutFilePath) { Process process = new Process(); process.StartInfo.FileName = this._7zInstallPath; process.StartInfo.Arguments = " a -t7z " + strOutFilePath + " " + strInDirectoryPath + " -r"; //隐藏DOS窗口 process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); process.WaitForExit(); process.Close(); } /// <summary> /// 压缩文件 /// </summary> /// <param name="strInFilePath">指定需要压缩的文件,如C:\test\demo.xlsx,将压缩demo.xlsx文件</param> /// <param name="strOutFilePath">压缩后压缩文件的存放目录</param> public void CompressFile(string strInFilePath, string strOutFilePath) { Process process = new Process(); process.StartInfo.FileName = this._7zInstallPath; process.StartInfo.Arguments = " a -t7z " + strOutFilePath + " " + strInFilePath + ""; //隐藏DOS窗口 process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); process.WaitForExit(); process.Close(); } /// <summary> /// 解压缩 /// </summary> /// <param name="strInFilePath">压缩文件的路径</param> /// <param name="strOutDirectoryPath">解压缩后文件的路径</param> public void DecompressFileToDestDirectory(string strInFilePath, string strOutDirectoryPath) { Process process = new Process(); process.StartInfo.FileName = this._7zInstallPath; process.StartInfo.Arguments = " x " + strInFilePath + " -o" + strOutDirectoryPath + " -r "; //隐藏DOS窗口 process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); process.WaitForExit(); process.Close(); } }
这里只是调用了几个很简单的命令,还有很多丰富的命名有兴趣可以去研究下:
http://blog.csdn.net/wbloveilove/article/details/7912438
注意,在调用-t7z命令进行文件压缩时,会在Mac上出现zip-->cpgz-->zip......无限循环的情况,
为了兼容性广泛一点,可以讲-t7z改为-tzip,这样当在服务器上压缩好文件,下载到Mac上时,就不会出现zip-->cpgz无限循环的情况了。
- c#调用7z压缩和解压缩文件
- C#使用#ziplib压缩和解压缩文件
- C#使用#ziplib压缩和解压缩文件(2)
- c#使用SharpZipLib压缩和解压缩文件
- 压缩和解压缩文件
- 压缩和解压缩文件
- Unity3D压缩和解压缩文件
- ZipArchive压缩和解压缩文件
- Linux压缩和解压缩文件
- Linux压缩和解压缩文件
- 利用7z.exe压缩和解压缩
- C#调用winrar进行压缩和解压缩
- Compact 命令压缩和解压缩文件
- ASP.NET 压缩和解压缩文件
- tar命令压缩和解压缩文件
- .NET GZip压缩和解压缩文件
- Android Gzip压缩和解压缩文件
- C# 压缩和解压缩
- 抽象类和接口的区别,内部类引用外部方法final参数,守护线程和用户线程
- C字符串和C++字符串
- boost中静态库编译没有-fPIC选项的问题解决方案
- 构造函数初始化列表
- 类 变量初始化
- c#调用7z压缩和解压缩文件
- 内存分配方式
- linux 信号 意义
- 搞了几天的Freetype,发现某些教程真是害死人啊,小字体变粗问题终于解决了。终于达到notepad的水准了。
- 内存管理
- 写给我们这些浮躁的程序员
- 内存对象大会战
- !!ECMA-262 核心
- 栈区,堆区,全局区,文字常量区,程序代码区 详解