c#2.0中新增的两个压缩类
来源:互联网 发布:淘宝金 金币2个 双色球 编辑:程序博客网 时间:2024/05/17 01:58
.NET Framework 2.0 中新增的两个压缩类
System.IO.Compression 命名空间
注意:此命名空间在 .NET Framework 2.0 版中是新增的。
System.IO.Compression 命名空间包含提供基本的流压缩和解压缩服务的类。
(downmoon原作)
类 说明
DeflateStream 提供用于使用 Deflate 算法压缩和解压缩流的方法和属性。
GZipStream 提供用于压缩和解压缩流的方法和属性。
枚举 说明
CompressionMode 指定是否压缩或解压缩基础流。
下面以 GZipStream 为例说明
注意:此类在 .NET Framework 2.0 版中是新增的。
提供用于压缩和解压缩流的方法和属性。
命名空间:System.IO.Compression
程序集:System(在 system.dll 中)
语法
Visual Basic(声明)
Public Class GZipStream
Inherits Stream
Visual Basic(用法)
Dim instance As GZipStream
C#
public class GZipStream : Stream
C++
public ref class GZipStream : public Stream
J#
public class GZipStream extends Stream
JScript
public class GZipStream extends Stream
备注
此类表示 GZip 数据格式,它使用无损压缩和解压缩文件的行业标准算法。这种格式包括一个检测数据损坏的循环冗余校验值。GZip 数据格式使用的算法与 DeflateStream 类的算法相同,但它可以扩展以使用其他压缩格式。这种格式可以通过不涉及专利使用权的方式轻松实现。gzip 的格式可以从 RFC 1952“GZIP file format specification 4.3(GZIP 文件格式规范 4.3)GZIP file format specification 4.3(GZIP 文件格式规范 4.3)”中获得。此类不能用于压缩大于 4 GB 的文件。
给继承者的说明 当从 GZipStream 继承时,必须重写下列成员:CanSeek、CanWrite 和 CanRead。
下面提供 一个完整的压缩与解压类(downmoon原作 ):
...{
public void CompressFile ( string sourceFile, string destinationFile )
...{
// make sure the source file is there
if ( File.Exists ( sourceFile ) == false )
throw new FileNotFoundException ( );
// Create the streams and byte arrays needed
byte[] buffer = null;
FileStream sourceStream = null;
FileStream destinationStream = null;
GZipStream compressedStream = null;
try
...{
// Read the bytes from the source file into a byte array
sourceStream = new FileStream ( sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read );
// Read the source stream values into the buffer
buffer = new byte[sourceStream.Length];
int checkCounter = sourceStream.Read ( buffer, 0, buffer.Length );
if ( checkCounter != buffer.Length )
...{
throw new ApplicationException ( );
}
// Open the FileStream to write to
destinationStream = new FileStream ( destinationFile, FileMode.OpenOrCreate, FileAccess.Write );
// Create a compression stream pointing to the destiantion stream
compressedStream = new GZipStream ( destinationStream, CompressionMode.Compress, true );
// Now write the compressed data to the destination file
compressedStream.Write ( buffer, 0, buffer.Length );
}
catch ( ApplicationException ex )
...{
MessageBox.Show ( ex.Message, "压缩文件时发生错误:", MessageBoxButtons.OK, MessageBoxIcon.Error );
}
finally
...{
// Make sure we allways close all streams
if ( sourceStream != null )
sourceStream.Close ( );
if ( compressedStream != null )
compressedStream.Close ( );
if ( destinationStream != null )
destinationStream.Close ( );
}
}
public void DecompressFile ( string sourceFile, string destinationFile )
...{
// make sure the source file is there
if ( File.Exists ( sourceFile ) == false )
throw new FileNotFoundException ( );
// Create the streams and byte arrays needed
FileStream sourceStream = null;
FileStream destinationStream = null;
GZipStream
- c#2.0中新增的两个压缩类
- c#2.0中新增的两个压缩类
- c#2.0中新增的两个压缩类
- c#2.0中新增的两个压缩类(downmoon原创)c#
- c#2.0中新增的两个压缩类(downmoon原创)c#
- .NET Framework 2.0 中新增的两个压缩类
- .NET Framework 2.0 中新增的两个压缩类
- .NET Framework 2.0 中新增的两个压缩类
- .NET Framework 2.0中新增的两个压缩类
- .NET Framework 2.0 中新增的两个压缩类
- .NET Framework 2.0 中新增的两个压缩类
- .net framework 2.0 中新增的两个压缩类及SharpZipLib类
- C#中使用新增类实现农历
- C#中关于zip压缩解压帮助类的封装
- C# 5.0中新增特性
- c#中DataGrid的数据新增编辑删除操作代码
- C# 中压缩与解压缩的方法
- C# 中distinct的使用与两个类的比较
- 利用salt防范MD5字典攻击
- VB基础教程(一)
- 收缩下拉菜单收集
- sendmail + sasl2安装笔记
- 自定义alert效果
- c#2.0中新增的两个压缩类
- 求不定长序列的全排列算法
- Java编写的30条建议
- dateview中刪除數據怎樣更新到數據庫,急!!!!
- log4j使用
- 第一次使用好不好给点建议
- web自动生成框架 之感悟
- 执行windows脚本宿主的权限
- 记住这些,你的鼠标就可以扔掉了