程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#應用iCSharpcode停止文件緊縮完成辦法

C#應用iCSharpcode停止文件緊縮完成辦法

編輯:C#入門知識

C#應用iCSharpcode停止文件緊縮完成辦法。本站提示廣大學習愛好者:(C#應用iCSharpcode停止文件緊縮完成辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C#應用iCSharpcode停止文件緊縮完成辦法正文


本文所述為一個C#應用iCSharpcode緊縮的應用類,經測試後果不錯。分享給年夜家供年夜家參考之用。詳細辦法以下:

1.參數類

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.任務類

//****************************************************************************************
//功效:完成文件緊縮
//應用辦法:設置參數停止緊縮
//*****************************************************************************************

using System;
using ICSharpCode.SharpZipLib.Zip;
using System.IO;
using System.Text;
namespace ZipCompress
{
  public class CompressFile
  {
    /// <summary>
    /// 緊縮文件參數
    /// </summary>
    public ZipParameter ZipParameter { get; set; }

    /// <summary>
    /// 緊縮文件前往緊縮後的信息
    /// </summary>
    /// <returns>string 前往緊縮後的提醒信息</returns>
    public string CompressReturnMsg()
    {
      FileStream Zip_File;
      ZipOutputStream ZipStream;
      ZipEntry ZipEntry;
      string rtnMessage = "";//前往的信息

      try
      {
        //輪回文件,假如文件不存在就不添加的緊縮外面
        for (int i = 0; i < ZipParameter.ZIPFileList.Count; i++)
        {
          if (!File.Exists(ZipParameter.ZIPFileList[i]))
          {
            ZipParameter.ZIPFileList.RemoveAt(i);
            i--;
          }

        }
        //沒有有文件上面的緊縮不履行
        if (ZipParameter.ZIPFileList.Count == 0)
        {
          return " file not find";
        }
        //沒有目次停止創立
        if (!Directory.Exists(ZipParameter.ZIPDirectoryName))
        {
          Directory.CreateDirectory(ZipParameter.ZIPDirectoryName);
        }

        // 處理文檔稱號亂碼成績,湧現亂碼就是由於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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved