导航:首页 > 文件处理 > gzipstream压缩文件

gzipstream压缩文件

发布时间:2023-07-15 07:08:19

❶ c# deflatestream gzipstream 区别

DeflateStream 类
注意:此类在 .NET Framework 2.0 版中是新增的。

提供用于使用 Deflate 算法压缩解压缩流的方法和属性。
此类表示 Deflate 算法,这是无损压缩和解压缩文件的行业标准算法。它结合了 LZ77 算法和霍夫曼编码。只能使用以前绑定的中间存储量来产生或使用数据,即使对于任意长度的、按顺序出现的输入数据流也是如此。这种格式可以通过不涉及专利使用权的方式轻松实现。有关更多信息,请参见 RFC 1951“DEFLATE Compressed Data Format Specification version 1.3”(Deflate 压缩数据格式规范版本 1.3)。此类不能用于压缩大于 4 GB 的文件。

GZipStream 类
注意:此类在 .NET Framework 2.0 版中是新增的。

提供用于压缩和解压缩流的方法和属性。
此类表示 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 的文件。

❷ c# .net gzip压缩源码

你可以使用.net的GZipStream来实现。受以下版本支持:4.5、4、3.5、3.0、2.0
参考:
下面的示例演示如何使用 GZipStream 类压缩和解压缩文件目录。

using System;
using System.IO;
using System.IO.Compression;
namespace zip
{
public class Program
{
public static void Main()
{
string directoryPath = @"c:\users\public\reports";
DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);
foreach (FileInfo fileToCompress in directorySelected.GetFiles())
{
Compress(fileToCompress);
}
foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz"))
{
Decompress(fileToDecompress);
}
}
public static void Compress(FileInfo fileToCompress)
{
using (FileStream originalFileStream = fileToCompress.OpenRead())
{
if ((File.GetAttributes(fileToCompress.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz")
{
using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + ".gz"))
{
using (GZipStream compressionStream = new GZipStream(compressedFileStream, CompressionMode.Compress))
{
originalFileStream.CopyTo(compressionStream);
Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
fileToCompress.Name, fileToCompress.Length.ToString(), compressedFileStream.Length.ToString());
}
}
}
}
}
public static void Decompress(FileInfo fileToDecompress)
{
using (FileStream originalFileStream = fileToDecompress.OpenRead())
{
string currentFileName = fileToDecompress.FullName;
string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);
using (FileStream decompressedFileStream = File.Create(newFileName))
{
using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
{
decompressionStream.CopyTo(decompressedFileStream);
Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
}
}
}
}
}
}

阅读全文

与gzipstream压缩文件相关的资料

热点内容
消息提示音怎么设置安卓 浏览:277
怎么去掉安卓手机的小圆圈 浏览:474
女程序员每天教你一招 浏览:590
药剂学pdf下载 浏览:477
打开的共享文件夹少东西 浏览:643
芝麻黑头解压去除视频 浏览:186
光明与黑暗怎么进入服务器 浏览:659
20岁的程序员 浏览:238
p4备份服务器是什么意思 浏览:350
枣庄空气压缩机维修 浏览:621
色弱程序员 浏览:415
oraclelinux修改ip 浏览:665
云上城之歌九游通用服务器 浏览:348
加密货币需要投资吗 浏览:533
php选择文件夹 浏览:564
数据库命令文件用什么创建 浏览:66
空调压缩机接头 浏览:376
安卓命令代码大全 浏览:13
明日之后在同一个服务器为什么看不见好友 浏览:702
python日期减一个月 浏览:397