利用c#自带的类对文件进行压缩和解压处理
2024-10-18 16:53:05
在做网络传输文件的小例子的时候,当传输的文件比较大的时候,我们通常都是将文件经过压缩之后才进行传输,以前都是利用第三方插件来对文件进行压缩的,但是现在我发现了c#自带的类库也能够实现文件的压缩,实际上是对数据的压缩吧,为什么说是对具体的数据经行压缩了,请看下面实现压缩的代码吧。
注意在用c#自带的类库实现文件压缩和解压的时候需要添加下面的引用:
using System.IO.Compression;
using System.IO;
压缩文件的代码如下:
/// <summary>
///压缩文件
/// </summary>
/// <param name="filePath">需要被压缩文件的路径</param>
private void FileCompression(string filePath)
{
StreamReader sr = new StreamReader(filePath);
//读取出文件中的内容来。
string data=sr.ReadToEnd();
//压缩文件的后缀名可以随意起。
FileStream filedata = new FileStream("myCompression.mZP", FileMode.Create, FileAccess.Write);
GZipStream zip = new GZipStream(filedata, CompressionMode.Compress);
StreamWriter sw = new StreamWriter(zip);
//将文件的内容写入到压缩的流当中
sw.Write(data);
zip.Close();
sr.Close();
filedata.Close();
//关闭流一定要按照流的顺序来,否则会出现异常:无法访问已关闭的文件。
// zip.Close(); }
然后实现解压的代码与上面类似
解压文件的代码如下:
private void fileDeCompression()
{
//将以压缩的文件变为一个文件流
FileStream fileCompression = File.OpenRead("myCompression.mZP");
GZipStream gzp = new GZipStream(fileCompression, CompressionMode.Decompress); StreamReader sr = new StreamReader(gzp);
//读取出解压后的数据
string data = sr.ReadToEnd();
MessageBox.Show(data);
gzp.Close();
fileCompression.Close();
sr.Close();
}
通过使用上面的两个方法即可实现对文件或者是数据的压缩和解压。
使用自带的类也会存在一些缺点:无法对文件夹经行压缩。
最新文章
- ElasticSearch 5学习(5)——第一个例子(很实用)
- Unity3D音乐音效研究-MIDI与波表
- (转)sscanf() - 从一个字符串中读进与指定格式相符的数据
- 15.Linux安装DHCP服务为虚拟机分配IP
- jQuery基础之(六)jQuery浏览器的兼容性(以CSS3特写兼容举例)
- Android studio 程序升级和sdk manager 升级方法
- qsort 排序功能 总结
- 访问servlet的路径问题
- sso示例代码
- 一文掌握 Linux 性能分析之网络篇
- 美团--Quake全链路压测平台
- tensorflow tfrecord文件存储
- 通过sqoop将hdfs数据导入MySQL
- Java思维理清思路
- AWT/Swing——事件处理
- 初识生成器与生成器表达式 Day12
- Mybatis在oracle数据库中插入数据后返回自增值ID
- [知乎]关于WindowsXPx64SP2系统的说明
- 算法笔记_199:第二届蓝桥杯软件类决赛真题(C语言本科)
- ddt 接口框架数据处理调用excel 处理
热门文章
- ZZNU 1719(最长上升子序列+最长下降子序列)
- 实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符 如";cbaacfdeaebb";,符合要求的是";f";,因为他只出现了一次(次数最少)。并且比其他只出现一次的字符(如";d";)首次出现的位置最靠前。
- Java并发工具类之同步屏障CyclicBarrier
- jQuery Validation Plugin
- .Net - WebApi
- Python小白学习之路(十二)—【前向引用】【风湿理论】
- Redis数据类型之SDS简单动态字符串
- (转)ldd 查看程序依赖库
- Eclipse *的安装(图文详解)
- 10-hdfs-hdfs搭建