使用Deflate算法对文件进行压缩与解压缩的方法详解
使用Deflate算法对文件进行压缩与解压缩的方法详解
发布时间:2016-12-28 来源:查字典编辑
摘要:如下所示:复制代码代码如下:staticvoidMain(){stringpath=@"D:PractiseIOCompress";stri...

如下所示:

复制代码 代码如下:

static void Main()

{

string path = @"D:PractiseIOCompress";

string deCompressPath = @"D:PractiseIODeCompress";

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);

}

}

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类