1. 添加7z.dll
由于7z.dll 是二进制文件,在.net 中不能像添加reference的方式进行引用。对于这种情况,微软采用命令的方式将7z.dll 添加至工程引用。
(1) 在工程上点击右键,选择“属性”:
(2) 在“Build Event”编写命令行,使其在编译的时候,可以引用上7z.dll
不用担心书写的格式与语法,微软提供了编写工具。
1) “Edit Post-build”
2) 根据弹出的对话框,选择相应的路径
3) 使用 copy命令,从源文件地址复制到指定的位置
2. 由于二进制的7zip本身是不能编译为IL文件的,国外有高人对它进行了.net封装,添加SevenZipSharp引用。
3. OK, 准备工作就绪。下面就进入代码的编写的阶段了。
对于7zip的配置还是比较麻烦的,这里,我仅仅是对rar文件进行解压
这里需要注意的是,必须要找到7z.dll 所在的位置,然后才能进行调用。
string _sevenZipDllPath = Application.StartupPath;
string zPath = Path.Combine(_sevenZipDllPath, "7z.dll");
当使用单元测试的时候,由于每次路径都是发生变化的,我们可以采用如下的方法获取文件路径所在位置:
//for vs.net unit test
string _sevenZipDllPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
_sevenZipDllPath = _sevenZipDllPath.Substring(0, _sevenZipDllPath.LastIndexOf("//"));
4. 测试解压,all passed。J
Reference:
7-Zip 中文官方网站:
7-Zip 常见问题解答
http://aspnet.bc8.com.cn/news/view/229/52882.html
在.NET应用程序中使用7-Zip的压缩/解压缩功能