真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

詳解C#壓縮、解壓文件夾/文件(帶密碼)-創(chuàng)新互聯(lián)

前言

成都創(chuàng)新互聯(lián)公司是專業(yè)的金沙網(wǎng)站建設(shè)公司,金沙接單;提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行金沙網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

今天梳理一下項(xiàng)目中用到的壓縮、解壓文件夾或文件的方法,發(fā)現(xiàn)因?yàn)樾枨蟛煌?,已?jīng)用了好幾個(gè)不同組件。今天就好好整理記錄下,別下次遇到需求又重頭開始了。

DotNetZip

DotNetZip是一個(gè)開源的免費(fèi)類庫(kù),主要提供了快速操作zip文件的工具集,VB、C#任何.Net語(yǔ)言都可以通過(guò)它創(chuàng)建、解壓縮zip文件。我使用該類庫(kù)最主要的目的還是因?yàn)樗梢詣?chuàng)建帶密碼保護(hù)的壓縮文件。

只有設(shè)置了zip.Password = "password"之后,被壓縮的文件才會(huì)有密碼保護(hù)

/// 
/// 壓縮文件/文件夾
/// 
/// 需要壓縮的文件/文件夾路徑
/// 壓縮文件路徑(zip后綴)
/// 密碼
/// 需要過(guò)濾的文件后綴名
public static void CompressionFile(string filePath, string zipPath, string password = "", List filterExtenList = null)
{
 try
 {
  using (ZipFile zip = new ZipFile(Encoding.UTF8))
  {
   if (!string.IsNullOrWhiteSpace(password))
   {
    zip.Password = password;
   }
   if (Directory.Exists(filePath))
   {
    if (filterExtenList == null)
     zip.AddDirectory(filePath);
    else
     AddDirectory(zip, filePath, filePath, filterExtenList);
   }
   else if (File.Exists(filePath))
   {
    zip.AddFile(filePath,"");
   }
   zip.Save(zipPath);
  }
 }
 catch (Exception ex)
 {
  throw ex;
 }
}

/// 
/// 添加文件夾
/// 
/// ZipFile對(duì)象
/// 需要壓縮的文件夾路徑
/// 根目錄路徑
/// 需要過(guò)濾的文件后綴名
public static void AddDirectory(ZipFile zip, string dirPath, string rootPath, List filterExtenList)
{
 var files = Directory.GetFiles(dirPath);
 for (int i = 0; i < files.Length; i++)
 {
  //如果Contains不支持第二個(gè)參數(shù),就用.ToLower()
  if (filterExtenList == null || (filterExtenList != null && !filterExtenList.Any(d => Path.GetExtension(files[i]).Contains(d, StringComparison.OrdinalIgnoreCase))))
  {
   //獲取相對(duì)路徑作為zip文件中目錄路徑
   zip.AddFile(files[i], Path.GetRelativePath(rootPath, dirPath));
   
  //如果沒(méi)有Path.GetRelativePath方法,可以用下面代碼替換
   //string relativePath = Path.GetFullPath(dirPath).Replace(Path.GetFullPath(rootPath), "");
   //zip.AddFile(files[i], relativePath);
  }
 }
 var dirs = Directory.GetDirectories(dirPath);
 for (int i = 0; i < dirs.Length; i++)
 {
  AddDirectory(zip, dirs[i], rootPath, filterExtenList);
 }
}


名稱欄目:詳解C#壓縮、解壓文件夾/文件(帶密碼)-創(chuàng)新互聯(lián)
瀏覽路徑:http://weahome.cn/article/hpeed.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部