文件压缩及解压代码2

来源:互联网 发布:淘宝买家具注意事项 编辑:程序博客网 时间:2024/06/15 01:58
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication2
{
    class Program
    {
        public static void DeflateStreamDemo()
        {
            try
            {
                FileStream myFileStream;
                DeflateStream myDeflateStream;
                System.IO.FileInfo myFile;
                string originalXMLFileName = "UserData.xml";
                string compressedXMLFileName = "UserData_Compressed";
                string decompressedXMLFileName = "UncompressedUserData.xml";
                System.Data.DataSet dsTest = new System.Data.DataSet();
                myFile = new FileInfo(originalXMLFileName);
                Console.WriteLine("The original data file, {0} contains {1} bytes.", myFile.Name, myFile.Length.ToString());
                dsTest.ReadXml(originalXMLFileName);
                myFileStream = new FileStream(compressedXMLFileName, FileMode.Create, FileAccess.Write);
                myDeflateStream = new DeflateStream(myFileStream, CompressionMode.Compress);
                dsTest.WriteXml(myDeflateStream);
                myDeflateStream.Close();
                myFile = new FileInfo(compressedXMLFileName);
                Console.WriteLine("The file has been compressed to {0} bytes and is stored in {1}.", myFile.Length.ToString(), myFile.Name);
                myFileStream = new FileStream(compressedXMLFileName, FileMode.Open, FileAccess.Read);
                myDeflateStream = new DeflateStream(myFileStream, CompressionMode.Decompress);
                dsTest = new DataSet();
                dsTest.ReadXml(myDeflateStream);
                dsTest.WriteXml(decompressedXMLFileName);
                myFile = new FileInfo(decompressedXMLFileName);
                Console.WriteLine("The file has been uncompressed and is now {0} bytes and is stored in {1}.", myFile.Length.ToString(), myFile.Name);
            }
            catch (Exception xcp)
            {
                Console.WriteLine(xcp.ToString());
            }
        }

        static void Main(string[] args)
        {
            DeflateStreamDemo();
        }

    }

}