SevenZipSharp的入门教程(包含如何加密压缩,解密压缩)
(一)为什么选择7z
(二) SevenZipSharp初始化工作
1、首先通过nuget获取 SevenZipSharp;
2、由于SevenZipSharp 是依赖于7z.dll的,所以你要单独添加7z.Dll放到你项目文件下的Bin目录,放这个的时候,要注意下系统是要用32位,还是64的呢?如果弄错会报这个错误”an not load 7-zip library or internal COM error! Message: DLL file does not exist“
3、如果你不按照第二步那种做法,你想自己指定7z.dll的位置。你可以这么做
var path = "~/App_Data/7z/7z.dll";
SevenZipBase.SetLibraryPath(path);
然后可能有些同学不太明白我说什么,先来这里把7z.dll下载下来再说吧。https://github.com/gdoujkzz/7zdll.git
(三) 使用SevenZipSharp 进行压缩
普通压缩(不加密压缩)
var tmp = new SevenZipCompressor(); //7z压缩
tmp.ScanOnlyWritable = true; //只可写
//tmp.CompressFiles()这个有三个重载,这里只讲其中一个比较常用的。
//public void CompressFiles(string archiveName, params string[] fileFullNames)
//archiveName:这个是代表生成的7z文件存在哪里
//fileFullNames:这个参数是要压缩的文件是一个params数组,特别注意必须是完整的路径名才有效
tmp.CompressFiles(@"D:\max\arch.7z", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test.txt", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test1.txt"); //tmp.CompressDirectory 压缩指定路径下面的所有文件,这个有12个重载,也只讲其中一个简单的。
// public void CompressDirectory( string directory, string archiveName)
tmp.CompressDirectory(@"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug", @"arch.7z");
加密压缩
其实也是和刚刚一样,看代码。
var tmp = new SevenZipCompressor();
tmp.CompressFilesEncrypted(@"D:\max\jiami.7z", "", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test1.txt", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test.txt")
压缩文件要加密,我暂时看到是只有这一种方式,如果大家有其他建议或不同,欢迎交流,谢谢。
(四) 使用SevenZipSharp 进行解压
普通解压
using (var tmp = new SevenZipExtractor(@"d:\max\noEncrypted.7z")) { //7z文件路径
for (int i = ; i < tmp.ArchiveFileData.Count; i++) {
tmp.ExtractFiles(@"d:\max\", tmp.ArchiveFileData[i].Index); //解压文件路径
}
}
//同样他也是支持界面某个路径下面的7z包的
//temp.ExtractArchive(path);
加密文件解压
using (var tmp = new SevenZipExtractor(@"d:\max\jiami2.7z","")) { //7z文件路径和7z文件密码
for (int i = ; i < tmp.ArchiveFileData.Count; i++) {
tmp.ExtractFiles(@"d:\max\test\", tmp.ArchiveFileData[i].Index); //解压文件路径 }
}
(五)其他功能
除了上面所说的一些基本功能之外, 还有下面这些功能。
(1)SevenZipSharp支持跨平台,可以在Mono上面使用。
(2)SevenZIpSharp还支持进行异步的压缩和解压。
(3)还支持多卷压缩和解压
(4)还支持...还有很多厉害的功能,都没来得及尝试
(六) 题外话
等过段时间有空了,要封装成一个工具类,在各个平台上使用下SevenZipSharp,以及研究下它的源码。
希望路过的大神能提点意见,让我这个菜鸟能够更快成长。谢谢。
SevenZipSharp的入门教程(包含如何加密压缩,解密压缩)的更多相关文章
- flask的模板引擎jinja入门教程 包含一个通过网络实时传输Video视频流的示例
本文首发于个人博客https://kezunlin.me/post/1e37a6/,欢迎阅读最新内容! tutorial to use python flask jinja templates and ...
- 2015某编程网易语言vip课堂全套教程 包含post,hook入门到精通等
2015某编程网易语言vip课堂全套教程 包含post,hook入门到精通等 官方论坛弄来的 如果在官方下载需要权限的 挺不错教程 想学习易语言入门到精通 post hook js改写的可以看 ...
- 通过遍历JSON键值对获取包含某字符串的键的值_电脑计算机编程入门教程自学
首发于:Aardio通过遍历JSON键值对获取包含某字符串的键的值_电脑计算机编程入门教程自学 http://jianma123.com/viewthread.aardio?threadid=429 ...
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...
- kafka入门教程链接
http://www.aboutyun.com/forum.php?mod=viewthread&tid=12882 经典入门教程 1.Kafka独特设计在什么地方?2.Kafka如何搭建及创 ...
- 超强、超详细Redis数据库入门教程
这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...
- ant使用指南详细入门教程
这篇文章主要介绍了ant使用指南详细入门教程,本文详细的讲解了安装.验证安装.使用方法.使用实例.ant命令等内容,需要的朋友可以参考下 一.概述 ant 是一个将软件编译.测试.部署等步骤联系在一起 ...
- ActiveReports 报表控件官方中文入门教程 (1)-安装、激活以及产品资源
本系列文章主要是面向初次接触 ActiveReports 产品的用户,可以帮助您在三天之内轻松的掌握ActiveReports控件的基本使用方法,包括安装.激活.创建报表.绑定数据源以及发布等内容.本 ...
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析(转)
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/20537737 作者:毛星云(浅墨) ...
随机推荐
- NancyFx 2.0的开源框架的使用-Basic
这是NancyFx开源框架中的Basic认证,学习一下! 首先当然是新建一个空的Web,BasicDemo 继续在项目中添加Nuget包,记得安装的Nuget包是最新的预发行版 Nancy Nancy ...
- 每天一道Java题[1]
问题:char[]与String相比,有什么优胜的地方? 回答: 针对安全保密高的信息,char[]比String做得更好.因为String是不可变得,即使你修改原先的变量,实际上也是在内存中新建一个 ...
- [刷题]算法竞赛入门经典(第2版) 5-12/UVa511 - Do You Know the Way to San Jose?
题意:N张地图,查找某地点在不在某些地图上,若在,使用细节多的地图.使用哪个地图的破要求挺多,细心一点就好. 代码:(Accepted,0.000s) //UVa511 - Do You Know t ...
- 关于php调用.net的web service 踩过的坑
从前一阵开始,公司要和对方做web service对接.由于对方使用.net语言,而我方使用php.本来经理是要求我们也用.net写web service的服务端.而我上学时学的.net全忘了... ...
- docker对cpu使用及在kubernetes中的应用
docker对CPU的使用 docker对于CPU的可配置的主要几个参数如下: --cpu-shares CPU shares (relative weight) --cpu-period Limit ...
- Java基础知识二次学习-- 第二章 基础语法与递归补充
第二章 基础语法与递归补充 时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...
- 【面向对象设计原则】之依赖倒置原则(DIP)
依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象.换言之,要针对抽象(接口)编程,而不是针对实现细节编程. 开闭原则( ...
- Virtualbox让kali虚拟机共享主机的无线网络连接
今天在测试虚拟机下安装kali系统时,遇到一个问题,默认安装完kali系统后,虚拟机不能上网.虚拟机网络配置使用的是默认的网络地址转换(NAT)选项. 网上查了很多,都说使用NAT模式时虚拟机不用做任 ...
- vue2.0+element+node+webpack搭建的一个简单的后台管理界面
闲聊: 今天是六一儿童节哟,小颖祝大家节日快乐哈哈哈.其实这个demo小颖断断续续做了将近两个礼拜了,心塞的,其实这个也没有多难,主要是小颖有点最近事情有点多,所以就把这个一直拖着,今天好不容易做好了 ...
- 在.Net下使用redis基于StackExchange.Redis
研究了下redis在.net下的使用,因为以前在java上用redis用的是jedis操作,在.net不是很熟悉,在网站上也看了一部分的.net下redis的使用,大部分都是ServiceStack. ...