使用Deflate算法对文件进行压缩和解压缩

本文介绍了一个使用C#实现的文件压缩与解压缩的方法。通过遍历指定目录下的所有文件,利用DeflateStream进行压缩成.cmp文件,并将原始文件解压还原。此过程涉及文件操作、流处理及压缩技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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); } } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值