最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 文件壓縮zip或將zip文件解壓的方法

 更新時間:2018年03月22日 09:17:43   作者:FeiJerry  
下面小編就為大家分享一篇c# 文件壓縮zip或將zip文件解壓的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.必須Dll:

ICSharpCode.SharpZipLib.dll??蓮腘utget程序包中獲取。

2.壓縮文件

/// <summary>
/// 壓縮文件成zip
/// </summary>
/// <param name="fileZip">壓縮成zip文件的絕對路徑</param>
/// <param name="fileName">被壓縮指定文件的名字</param>
/// <param name="zipFilePath"></param>
/// <returns></returns>
public bool CreateZipFile(string fileZip,string fileName, string zipFilePath)
  {
   bool isZip = false;
   if (!Directory.Exists(zipFilePath))
   {
    Logger.Info($"Cannot find directory {zipFilePath}", false, "FileToZip");
    return isZip;
   }
   try
   {
    string[] filenames = Directory.GetFiles(zipFilePath);
    using (ZipOutputStream s = new ZipOutputStream(File.Create(fileZip)))
    {
     s.SetLevel(9); // 壓縮級別 0-9
     //s.Password = "123"; //Zip壓縮文件密碼
     byte[] buffer = new byte[4096]; //緩沖區(qū)大小
     foreach (string file in filenames.ToList())
     {
      if (file== zipFilePath+fileName)//指定被壓縮文件的絕對路徑
      {
       ZipEntry entry = new ZipEntry(Path.GetFileName(file));
       entry.DateTime = DateTime.Now;
       s.PutNextEntry(entry);
       using (FileStream fs = File.OpenRead(file))
       {
        int sourceBytes;
        do
        {
         sourceBytes = fs.Read(buffer, 0, buffer.Length);
         s.Write(buffer, 0, sourceBytes);
        } while (sourceBytes > 0);
        fs.Close();
        fs.Dispose();
       }
       break;
      }
     }
     s.Finish();
     s.Close();
     isZip = true;
    }
   }
   catch (Exception ex)
   {
    Logger.Info($"Exception during processing {0}", false, "FileToZip");
   }
   return isZip;
  }

3.將zip文件解壓

/// <summary>
/// 解壓文件
/// </summary>
/// <param name="zipFilePath">壓縮文件的絕對路徑</param>
 public void UnZipFile(string zipFilePath)
  {
   if (!File.Exists(zipFilePath))
   {
    Logger.Info($"Cannot find file {zipFilePath}", false, "FileToZip");
    return;
   }
   using (ZipInputStream s = new ZipInputStream(File.OpenRead(zipFilePath)))
   {
    ZipEntry theEntry;
    while ((theEntry = s.GetNextEntry()) != null)
    {
     string directoryName = Path.GetDirectoryName(theEntry.Name);
     string fileName = Path.GetFileName(theEntry.Name);
     // create directory
     if (directoryName?.Length > 0)
     {
      Directory.CreateDirectory(directoryName);
     }
     if (!string.IsNullOrEmpty(fileName))
     {
      using (FileStream streamWriter = File.Create(theEntry.Name))
      {
       int size = 2048;
       byte[] data = new byte[2048];
       while (true)
       {
        size = s.Read(data, 0, data.Length);
        if (size > 0)
        {
         streamWriter.Write(data, 0, size);
        }
        else
        {
         break;
        }
       }
      }
     }
    }
   }
  }

4.其它:其中的Logger是Log4的用法。

以上這篇c# 文件壓縮zip或將zip文件解壓的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • C#漢字轉拼音實例(支持多音字)

    C#漢字轉拼音實例(支持多音字)

    幾年前就在網上看到過漢字轉拼音的程序,大都就是按漢字的編碼轉換,單字對應的算法實現(xiàn)的。但是都有一個共同的缺點,不能支持多音字。本篇文章主要介紹了C#漢字轉拼音實例(支持多音字),有興趣的可以了解一下。
    2016-12-12
  • C#遞歸算法之快速排序

    C#遞歸算法之快速排序

    快速排序由C.A.R發(fā)明,它依據中心元素的值,利用一系列遞歸調用將數(shù)據表劃分成越來越小的子表。在每一步調用中,經過多次的交換,最終為中心元素找到最終的位置。
    2016-06-06
  • 基于WPF實現(xiàn)簡單的文件夾比較工具

    基于WPF實現(xiàn)簡單的文件夾比較工具

    文件比較平常都是用Beyond?Compare,可以說離不開的神器,不過Beyond?Compare平常拿它主要是用來做代碼比較,用來做一些大批量的二進制文件比較,其實有點不是很方便,所以本文來用WPF做一個簡單的文件夾比較的小工具
    2023-05-05
  • C# 獲取屬性名的方法

    C# 獲取屬性名的方法

    C# 獲取屬性名的方法實例,需要的朋友可以參考一下
    2013-03-03
  • 深入c# GDI+簡單繪圖的具體操作步驟(一)

    深入c# GDI+簡單繪圖的具體操作步驟(一)

    本篇文章是對GDI的基礎知識進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • 改進c# 代碼的五個技巧(二)

    改進c# 代碼的五個技巧(二)

    這篇文章主要介紹了改進c# 代碼的五個技巧(二),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • C#面向對象編程中里氏替換原則的示例詳解

    C#面向對象編程中里氏替換原則的示例詳解

    在面向對象編程中,SOLID?是五個設計原則的首字母縮寫,旨在使軟件設計更易于理解、靈活和可維護。本文將通過實例詳細講講C#面向對象編程中里氏替換原則,需要的可以參考一下
    2022-07-07
  • C# 泛型類(函數(shù))的實例化小例子

    C# 泛型類(函數(shù))的實例化小例子

    C# 泛型類(函數(shù))的實例化小例子,需要的朋友可以參考一下
    2013-04-04
  • C#實現(xiàn)過濾sql特殊字符的方法集合

    C#實現(xiàn)過濾sql特殊字符的方法集合

    這篇文章主要介紹了C#實現(xiàn)過濾sql特殊字符的方法,以實例形式分析總結了C#針對SQL危險字符的幾種常用的過濾技巧,非常具有實用價值,需要的朋友可以參考下
    2015-11-11
  • C#獲取機器碼的方法詳解(機器名,CPU編號,硬盤編號,網卡mac等)

    C#獲取機器碼的方法詳解(機器名,CPU編號,硬盤編號,網卡mac等)

    這篇文章主要介紹了C#獲取機器碼的方法,結合實例形式詳細分析了C#獲取硬件機器名、CPU編號、硬盤編號、網卡mac等信息的相關實現(xiàn)方法,需要的朋友可以參考下
    2016-07-07

最新評論

永胜县| 和平区| 乳山市| 澄江县| 马山县| 哈巴河县| 田林县| 信丰县| 巩义市| 扎赉特旗| 墨竹工卡县| 尖扎县| 中西区| 双峰县| 宁国市| 连南| 公主岭市| 南京市| 且末县| 资兴市| 耒阳市| 彭阳县| 随州市| 霍城县| 华亭县| 友谊县| 禹州市| 潼关县| 镶黄旗| 全南县| 遂宁市| 奇台县| 疏勒县| 襄汾县| 兴国县| 九龙坡区| 宁城县| 桐庐县| 广东省| 邵武市| 常山县|