使用Deflate算法对文件进行压缩与解压缩的方法详解
时间:2022-01-27 09:48:49
如下所示:
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);
}
}
}
}
标签:Deflate算法,压缩,解压缩
0
投稿
猜你喜欢
Spring AOP如何整合redis(注解方式)实现缓存统一管理详解
2023-11-19 06:09:27
Java线程池并发执行多个任务方式
2023-08-14 16:26:03
c#图片处理之图片裁剪成不规则图形
2023-02-23 02:43:58
Java聊天室之实现接收和发送Socket
2021-06-24 23:30:39
C#实现对文件进行加密保护的示例代码
2023-05-21 13:06:21
Android:Field can be converted to a local varible.的解决办法
2022-01-23 16:53:14
Gradle学习教程之部署上传项目详解
2023-08-08 20:46:46
对C# 多态的理解
2022-10-17 02:37:26
springboot aspect通过@annotation进行拦截的实例代码详解
2023-10-15 20:12:54
详解SHA-256算法的原理以及C#和JS的实现
2023-07-01 15:49:58
C#实现关闭子窗口而不释放子窗口对象的方法
2022-09-11 12:41:02
Java中的同步与异步详细介绍
2023-06-23 00:42:08
Android实现简易计步器功能隔天步数清零查看历史运动纪录
2021-07-24 00:37:02
Java获得当前时间前指定几个小时具体时间的方法示例
2023-11-24 04:56:49
java8 实现提取集合对象的每个属性
2023-10-17 19:37:27
解决SpringMVC项目连接RabbitMQ出错的问题
2022-12-22 13:05:51
java eclipse 中文件的上传和下载示例解析
2021-11-18 06:55:58
Mybatis 逆向工程的三种方法详解
2023-08-10 22:27:20
使用Flutter实现一个走马灯布局的示例代码
2023-06-19 03:50:03
Android ToolBar整合实例使用方法详解
2023-04-05 07:27:53