狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【C#】使用DotNetZip壓縮與解壓縮

admin
2024年1月19日 14:46 本文熱度 724
DotnetZip是一個開源類庫,支持.NET的任何語言,可很方便的創建,讀取,和更新zip文件。而且還可以使用在.NETCompact Framework中。 

下載地址在這里:附件:DotNetZip.rar

解壓后放到主程序同一個目錄下,引用Ionic.Zip.dll就可以了:

然后引用這個命名空間:

using Ionic.Zip;

以下是使用代碼:

01.using System;
02.using System.Collections.Generic;
03.using System.ComponentModel;
04.using System.Data;
05.using System.Drawing;
06.using System.Linq;
07.using System.Text;
08.using System.Windows.Forms;
09.using Ionic.Zip;
10.namespace WindowsFormsZIP
11.{
12.    public partial class Form1 : Form
13.    {
14.        public Form1()
15.        {
16.            InitializeComponent();
17.        }
18.
19.        /// <summary>
20.        /// 壓縮帶中文的文件名.  
21.        /// </summary>
22.        /// <param name="sender">The source of the event.</param>
23.        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
24.        private void button1_Click(object sender, EventArgs e)
25.        {
26.
27.            using (ZipFile zip = new ZipFile("蘇志.zip",Encoding.Default))
28.            {
29.                zip.AddFile("數據庫文檔.doc");
30.                zip.Save();
31.            }
32.
33.        }
34.
35.        /// <summary>
36.        /// 用密碼加密ZIP文件.  
37.        /// </summary>
38.        /// <param name="sender">The source of the event.</param>
39.        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
40.        private void button2_Click(object sender, EventArgs e)
41.        {
42.
43.            using (ZipFile zip = new ZipFile())
44.            {
45.                zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression;   //設置壓縮率

45.                zip.Password = "123456!";

46.                zip.AddFile("WPF 4 Unleashed.pdf");

47.                zip.Save("WPF 4 Unleashed.zip");
48.            }
49.
50.        }
51.
52.        /// <summary>
53.        /// 壓縮文件夾  
54.        /// </summary>
55.        /// <param name="sender">The source of the event.</param>
56.        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
57.        private void button3_Click(object sender, EventArgs e)
58.        {
59.            using (ZipFile zip = new ZipFile())
60.            {
61.                zip.AddDirectory(@"E:\suzhi");
62.                zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G");
63.                zip.Save("test.zip");
64.            }
65.        }
66.
67.        /// <summary>
68.        /// 抽取ZIP中的文件到指定的文件夾.  
69.        /// </summary>
70.        /// <param name="sender">The source of the event.</param>
71.        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
72.        private void button4_Click(object sender, EventArgs e)
73.        {
74.            using (ZipFile zip = ZipFile.Read("test.zip"))
75.            {
76.                foreach (ZipEntry z in zip)
77.                {
78.                    z.Extract(@"F:\kk");
79.                }
80.            }
81.
82.        }
83.
84.    }
85.}

具體的例子:

           //獲取壓縮包路徑
           string filename = material.CreationTime.ToyyyyMMdd().Replace("-""");

           //string zippath = AppDomain.CurrentDomain.BaseDirectory + "upload\\Zipped\\" + filename;
           
//和上面的結果一樣
           string zippath = material.FilePath;
           string decomPath = "";
           string nowpath = "";
           if (material.FilePath.Substring(material.FilePath.Length - 33).Equals("zip"))
           { decomPath = material.FilePath.Replace(".zip"""); }
           if (material.FilePath.Substring(material.FilePath.Length - 33).Equals("rar"))
           { decomPath = material.FilePath.Replace(".rar"""); }
           //查詢此目錄下是否存在需要解壓過的同名的文件夾名稱
           DirectoryInfo direInfo = new DirectoryInfo(decomPath);
           if (direInfo.Exists)
           {
               DirectoryInfo[] childs = direInfo.GetDirectories();
               foreach (DirectoryInfo child in childs)
               {
                   child.Delete(true);
               }
               direInfo.Delete(true);
           }

           //解壓文件夾
           using (ZipFile zip = ZipFile.Read(zippath))
           {

               foreach (ZipEntry z in zip)
               {
                   //z.Extract(material.FilePath.Replace(".zip", ""));
                   z.Extract(zippath.Replace(".zip"""));
               }
           }

           direInfo = new DirectoryInfo(zippath.Replace(".zip"""));
           if (direInfo.Exists)
           {
               DirectoryInfo[] dirchild = direInfo.GetDirectories();
               if (dirchild.Count() == 1)
               {
                    nowpath = decomPath + "\\" + dirchild[0].Name;
                   direInfo = new DirectoryInfo(nowpath);
                   DirectoryInfo[] dirchild2 = direInfo.GetDirectories();
                   foreach (DirectoryInfo childrens in dirchild2)
                   {

                       //修改文件夾的內容
                       FileStream fs = new FileStream(nowpath +"\\"+ childrens.Name + "\\index.html", FileMode.OpenOrCreate, FileAccess.ReadWrite);
                       string fileText = "";
                       GameServer server = GameServerService.GetGameServerWithGame(materialLog.ServerId);
                       Game game = server.Game;
                       using (StreamReader sr = new StreamReader(fs))
                       {
                           fileText = sr.ReadToEnd();
                           fileText = fileText.Replace("#GameCode#", game.Code);
                           fileText = fileText.Replace("#ServerCode#", server.Code);
                           fileText = fileText.Replace("#ServerId#", Convert.ToString(server.ServerId));
                       }
                       if (fileText != "")
                       {
                           using (StreamWriter sw = new StreamWriter(nowpath + "\\" + childrens.Name + "\\index.html"false, Encoding.Default))
                           {
                               sw.Write(fileText);
                           }
                       }

                   }
               }
               
           }

           //重新壓縮

           using (ZipFile zip = new ZipFile())
           {
               zip.AddDirectory(decomPath);
               zip.Save(nowpath+".zip");
           }

該文章在 2024/1/19 22:48:33 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved