如下所示:


复制代码

代码如下:


        static void Main()


        {


            string path = @"D:\Practise\IO\Compress";


            string deCompressPath = @"D:\Practise\IO\DeCompress";


            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#实现页面GZip或Deflate压缩的方法
  • JAVA中的deflate压缩实现方法