使用Deflate算法对文件进行压缩与解压缩的方法详解
发布时间:2022-01-27 09:48:49
标签:Deflate算法,压缩,解压缩
如下所示:
static void Main()
{
string path = @"D:\Practise\IO\Compress";
string deCompressPath = @"D:\Practise\IO\DeCompress";
DirectoryInfo dir = new DirectoryInfo(path);
foreach (FileInfo fi in dir.GetFiles())
{
Compress(fi);
}
foreach (FileInfo fi in dir.GetFiles("*.cmp"))
{
DeCompress(fi, deCompressPath);
}
}
public static void Compress(FileInfo fi)
{
using (FileStream fs = fi.OpenRead())
{
if (fi.Attributes != FileAttributes.Hidden & fi.Extension != ".cmp")
{
using (FileStream compressfile = new FileStream(fi.FullName + ".cmp", FileMode.Create, FileAccess.ReadWrite))
{
using (DeflateStream ds = new DeflateStream(compressfile, CompressionMode.Compress))
{
fs.CopyTo(ds);
Console.WriteLine("This File {0} has been Compressed to {1}",fi.Name,compressfile.Name);
}
}
}
}
}
public static void DeCompress(FileInfo fi, string desination)
{
using (FileStream fs = fi.OpenRead())
{
string deCompressFile = fi.Name.Remove(fi.Name.Length - fi.Extension.Length);
using (FileStream deCompressFS = new FileStream(Path.Combine(desination, deCompressFile), FileMode.Create, FileAccess.ReadWrite))
{
using (DeflateStream ds = new DeflateStream(fs, CompressionMode.Decompress))
{
ds.CopyTo(deCompressFS);
Console.WriteLine("This file {0} has been Decompressd", fi.Name);
}
}
}
}
0
投稿
猜你喜欢
- 最近有一款2048的游戏非常火,本文将来介绍一下使用OGEngine游戏引擎开发游戏2048。OGEngine引擎是开源的,我们很容易找到,
- Flayway是一款数据库版本控制管理工具,,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里;不仅
- rocketmq client 日志的问题处理使用rocketmq后,默认会在{user.home}\logs\rocketmqlogs 目
- Java 编程语言中时间的处理类有 Date类与 Calendar类。目前官方不推荐使用 Date类,因为其不利于国际化;而是推荐使用 Ca
- 1.shiro安全框架Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和session会话管理等功能,
- 字符串每隔4位加空格今天弄了个银行卡识别功能,回显的时候想要将银行卡号每四位加一个空格,这样核对卡号会方便很多,这里记录一下1.正则表达式实
- 一、TCP/IP简介TCP/IP协议族是互联网使用的协议,也可以用在独立的专用网络中。TCP/IP协议族包括了IP协议、TCP协议和UDP协
- 一个提交到服务器的处理通常可以分为两个阶段,第一个阶段查询服务器状态(查询或者更新数据库),第二个阶段选择一个合适的结果页面其返回给用户(这
- 本文实例为大家分享了java web个人通讯录系统的具体代码,供大家参考,具体内容如下现在开始上截图:下面粘贴代码:首先是目录结构:<
- 前言本文主要给大家介绍的是关于Java通过Class类获取Class对象的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- 一、平衡二叉树的定义平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1 。它是一种高度平衡的二叉排序树。意思是说,
- @Autowired注解和静态方法及new关系一、@autowired 与new new出来的对象无法调用@Autowired注入
- 在这篇文章中,我精选了几个比较适合 Java 编码的 IDEA 主题供小伙伴们选择。另外,我自己用的是 One Dark theme 这款。
- Eureka注册中心/服务发现框架Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中
- mysql插件实现原理官网的关键信息参考文档https://mybatis.org/mybatis-3/zh/configuration.h
- 前言在写项目的时候经常需要特定的时间做一些特定的操作,尤其是游戏服务器,维护线程之类的,这时候就需要用到定时器。如果此时你刚好用的是spri
- 在开发应用过程中,客户端与服务端经常需要进行数据传输,涉及到重要隐私信息时,开发者自然会想到对其进行加密,即使传输过程中被“有心人”截取,也
- 引言本文是关于Spark优化性能与内存使用的最佳实践,翻译整理自Tuning - Spark 3.3.2 Documentation。由于s
- Java多态成员访问的特点多态概要多态是面向对象编程的三个特性之一,这里不展开做过多介绍,有机会专门写一个关于继承,封装,多态三大特性的文章
- 在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的File