博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET I/O 学习笔记:对文件和目录进行解压缩操作
阅读量:4572 次
发布时间:2019-06-08

本文共 2174 字,大约阅读时间需要 7 分钟。

  对文件和目录进行解压缩是一个非常常见的操作,在.NET Framework中为我们提供了:类来对文件进行解压缩操作。此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法。GZip 数据格式使用的算法与  类的算法相同,但它可以扩展以使用其他压缩格式。 这种格式可以通过不涉及专利使用权的方式轻松实现。DeflateStream 和 GZipStream 中的压缩功能作为流公开。 由于数据是以逐字节的方式读取的,因此无法通过进行多次传递来确定压缩整个文件或大型数据块的最佳方法。 对于未压缩的数据源,最好使用DeflateStream类。如果源数据已压缩,则使用这些类时实际上可能会增加流的大小。

单个文件进行解压缩 

View Code
1         ///  2         ///单个文件压缩 3         ///  4         ///  5         public static void Compress(FileInfo fi) 6         { 7             using (FileStream inFile = fi.OpenRead()) 8             { 9                 if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fi.Extension != ".gz")10                 {11                     using (FileStream outFile = File.Create(fi.FullName + ".gz"))12                     {13                         using (GZipStream compress = new GZipStream(outFile, CompressionMode.Compress))14                         {15                             inFile.CopyTo(compress);16                             Console.WriteLine("Compressed {0} from {1} to {2} bytes.", fi.Name, fi.Length.ToString(), outFile.Length.ToString());17                         }18                     }19                 }20             }21         }22 23         /// 24         /// 单个文件解压25         /// 26         /// 27         public static void Decompress(FileInfo fi)28         {29             using (FileStream inFile = fi.OpenRead())30             {31                 string curFile = fi.FullName;32                 string origName = curFile.Remove(curFile.Length - fi.Extension.Length);33 34                 using (FileStream outFile = File.Create(origName))35                 {36                     using (GZipStream decompress = new GZipStream(inFile, CompressionMode.Decompress))37                     {38                         decompress.CopyTo(outFile);39                         Console.WriteLine("Decompressed: {0}", fi.Name);40                     }41                 }42             }43         }

 

多个文件和目录解压缩

  GZipStream类只提供了对单个文件进行解压缩,对于多个文件和目录进行解压缩操作需要自己添加代码来实现。实现可以参考下面的示例程序。点击这里:

 

参考资料:

转载于:https://www.cnblogs.com/IPrograming/archive/2012/08/31/CSharp_Compress_Decompress.html

你可能感兴趣的文章
浅析 JavaScript 链式调用
查看>>
分布式版本控制系统Git的安装与使用
查看>>
Python字符串反转操作
查看>>
js将时间戳转为时间格式
查看>>
lucene中FSDirectory、RAMDirectory的用法
查看>>
单向链表的实现
查看>>
普通用户也能运行WCF服务端
查看>>
创建一个存储过程,接受1个部门编号,利用传出参数返回月薪高于该部门平均月薪的人数。...
查看>>
the ruby resources
查看>>
一个稍微整理过的curl函数
查看>>
解决Flex4 amchart 日期出现两个月的问题
查看>>
java环境配置错误集锦
查看>>
【SICP练习】81 练习2.53
查看>>
poj3335 Rotating Scoreboard
查看>>
yum安装jdk如何配置JAVA_HOME
查看>>
nefu 三国之战
查看>>
creat-react-app搭建的项目中按需引入antd以及配置Less和如何修改antd的主题色
查看>>
IIS安装
查看>>
c#核心基础-委托
查看>>
VS2008试用版到期解决办法
查看>>