国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#使用iCSharpcode進行文件壓縮實現(xiàn)方法

2020-01-24 02:27:54
字體:
供稿:網(wǎng)友

本文所述為一個C#使用iCSharpcode壓縮的使用類,經(jīng)測試效果不錯。分享給大家供大家參考之用。具體方法如下:

1.參數(shù)類

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ZipCompress{  public class ZipParameter  {    private string zip_Name = "";    private string zip_DirectoryName = "";    private List<string> zip_FileList = new List<string>();    /// <summary>    /// 壓縮后的文件名稱    /// </summary>    public string ZIPName    {      get { return zip_Name; }      set { zip_Name = value; }    }    /// <summary>    /// 壓縮的文件路徑    /// </summary>    public string ZIPDirectoryName    {      get { return zip_DirectoryName; }      set { zip_DirectoryName = value; }    }    /// <summary>    /// 壓縮的文件列表    /// </summary>    public List<string> ZIPFileList    {      get { return zip_FileList; }      set { zip_FileList = value; }    }  }}

2.工作類

//****************************************************************************************//功能:實現(xiàn)文件壓縮//使用方法:設(shè)置參數(shù)進行壓縮//*****************************************************************************************using System;using ICSharpCode.SharpZipLib.Zip;using System.IO;using System.Text;namespace ZipCompress{  public class CompressFile  {    /// <summary>    /// 壓縮文件參數(shù)    /// </summary>    public ZipParameter ZipParameter { get; set; }    /// <summary>    /// 壓縮文件返回壓縮后的信息    /// </summary>    /// <returns>string 返回壓縮后的提示信息</returns>    public string CompressReturnMsg()    {      FileStream Zip_File;      ZipOutputStream ZipStream;      ZipEntry ZipEntry;      string rtnMessage = "";//返回的信息      try      {        //循環(huán)文件,如果文件不存在就不添加的壓縮里面        for (int i = 0; i < ZipParameter.ZIPFileList.Count; i++)        {          if (!File.Exists(ZipParameter.ZIPFileList[i]))          {            ZipParameter.ZIPFileList.RemoveAt(i);            i--;          }        }        //沒有有文件下面的壓縮不執(zhí)行        if (ZipParameter.ZIPFileList.Count == 0)        {          return " file not find";        }        //沒有目錄進行創(chuàng)建        if (!Directory.Exists(ZipParameter.ZIPDirectoryName))        {          Directory.CreateDirectory(ZipParameter.ZIPDirectoryName);        }        // 解決文檔名稱亂碼問題,出現(xiàn)亂碼就是因為CodePage不對        Encoding gbk = Encoding.GetEncoding("gbk");        ICSharpCode.SharpZipLib.Zip.ZipConstants.DefaultCodePage = gbk.CodePage;        //文件路徑,文檔路徑與文件名稱        string strPath = ZipParameter.ZIPDirectoryName + ZipParameter.ZIPName;        Zip_File = File.Create(strPath);        ZipStream = new ZipOutputStream(Zip_File);        foreach (string FileToZip in ZipParameter.ZIPFileList)        {          Zip_File = File.OpenRead(FileToZip);          byte[] buffer = new byte[Zip_File.Length];          Zip_File.Read(buffer, 0, buffer.Length);          Zip_File.Close();          ZipEntry = new ZipEntry(Path.GetFileName(FileToZip));          ZipStream.PutNextEntry(ZipEntry);          ZipStream.Write(buffer, 0, buffer.Length);        }        ZipStream.Finish();        ZipStream.Close();        Zip_File.Close();        rtnMessage = "success";      }      catch (Exception ex)      {        rtnMessage = "fail:" + ex.Message;      }      finally      {        GC.Collect();        GC.Collect(1);      }      return rtnMessage;    }  }}

3.使用類

ZipParameter zp = new ZipParameter();zp.ZIPDirectoryName = @"C:/Users/Public/Pictures/Sample Pictures/";zp.ZIPName = "Test.zip";zp.ZIPFileList.Add(@"C:/Users/Public/Pictures/Sample Pictures/Chrysanthemum.jpg");zp.ZIPFileList.Add(@"C:/Users/Public/Pictures/Sample Pictures/Desert.jpg");zp.ZIPFileList.Add(@"C:/Users/Public/Pictures/Sample Pictures/錯誤文件.jpg");CompressFile cprFile = new CompressFile();cprFile.ZipParameter = zp;string strMessage = cprFile.CompressReturnMsg();

4.文件源碼點此本站下載

希望本文所述對大家的C#程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 买车| 六盘水市| 巴塘县| 合江县| 万盛区| 吕梁市| 武冈市| 彭阳县| 宣化县| 中超| 宣恩县| 襄城县| 临江市| 秦皇岛市| 洞头县| 达日县| 湘西| 丹凤县| 罗源县| 南华县| 微山县| 云阳县| 旬阳县| 大关县| 苍溪县| 枝江市| 江油市| 张北县| 浦县| 台南县| 柏乡县| 宣化县| 珠海市| 瑞昌市| 天峨县| 馆陶县| 唐山市| 江永县| 虹口区| 余江县| 京山县|