NET中SharpZipLib 的使用(一)【壓縮與解壓】
壓縮的Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib.Zip;
namespace SharpZipLibUse
{
class Program
{
static void Main(string[] args)
{
//壓縮檔案
//得到一個壓縮檔案,流
FileStream zipFile = new FileStream("Demo.zip", FileMode.Create);
//建立一個壓縮流,寫入壓縮流中的內容,自動被壓縮
ZipOutputStream zos = new ZipOutputStream(zipFile);
//當前目錄
DirectoryInfo di = new DirectoryInfo(".");
FileInfo[] files = di.GetFiles("*.txt");
byte[] buffer = new byte[10 * 1024];
foreach (FileInfo fi in files)
{
//第一步,寫入壓縮的說明
ZipEntry entry = new ZipEntry(fi.Name);
entry.Size = fi.Length;
//儲存
zos.PutNextEntry(entry);
//第二步,寫入壓縮的檔案內容
int length=0;
Stream input=fi.Open(FileMode.Open);
while ((length=input.Read(buffer,0,10*1024))>0)
{
zos.Write(buffer,0,length);
}
input.Close();
}
zos.Finish();
zos.Close();
Console.WriteLine("Ok!");
Console.Read();
}
}
}
執行結果如圖:
解壓的Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ICSharpCode.SharpZipLib.Zip;
using System.IO;
namespace ZipDemo
{
class Program
{
static void Main(string[] args)
{
//萬物皆物件
//一個壓縮檔案看成一個物件
ZipFile zf = new ZipFile("Program.zip");
//一個壓縮檔案內,包括多個被壓縮的檔案
foreach (ZipEntry entry in zf)
{
//一個被壓縮檔案,稱為一個條目
Console.WriteLine("壓縮包內檔名:" + entry.Name);
Console.WriteLine("壓縮包大小:" + entry.Size);
//解壓出被壓縮的檔案
FileStream fs = new FileStream(entry.Name, FileMode.Create);
//獲取從壓縮包中讀取資料的流
Stream input = zf.GetInputStream(entry);
byte[] buffer = new byte[10 * 1024];
int length = 0;
while ((length = input.Read(buffer, 0, 10 * 1024)) > 0)
{
fs.Write(buffer, 0, length);
}
fs.Close();
input.Close();
}
Console.Read();
}
}
}
執行結果如圖:
相關文章
- NET中SharpZipLib 的使用(二)【Web中壓縮與解壓】Web
- .NET 壓縮/解壓檔案
- linux 高效壓縮工具之xz的壓縮解壓使用Linux
- c# 檔案壓縮DotNetZip和SharpZipLibC#
- Linux 常用的壓縮與解壓縮命令詳解Linux
- Linux tar分卷壓縮與解壓縮Linux
- Linux下檔案的壓縮與解壓Linux
- Linux壓縮解壓Linux
- CentOS 壓縮解壓CentOS
- CentOS中zip壓縮和unzip解壓縮命令詳解CentOS
- 淺談在c#中使用Zlib壓縮與解壓的方法C#
- linux下壓縮解壓縮命令Linux
- linux 下壓縮與解壓資料夾Linux
- Linux下的tar壓縮解壓縮命令詳解Linux
- Linux中檔案的壓縮和解壓縮Linux
- linuxtar解壓和壓縮Linux
- linux分卷壓縮解壓Linux
- kotlin對ZipInputStream與ZipOutputStream的一些擴充工具(壓縮,解壓)Kotlin
- Linux科研武器庫 - 檔案壓縮與解壓縮 - zip / unzipLinux
- PAT-B 1078 字串壓縮與解壓【字串】字串
- 分卷壓縮怎麼解壓 快速解壓電腦分卷壓縮檔案方法
- ASP.NET Core中的響應壓縮ASP.NET
- Linux打包壓縮解壓工具Linux
- Keka for Mac(壓縮解壓工具)Mac
- Keka for Mac壓縮解壓工具Mac
- MyZip for mac解壓壓縮工具Mac
- Nginx R31 doc-11-Compression and Decompression 壓縮與解壓縮Nginx
- 用ASP實現線上壓縮與解壓縮功能程式碼
- Linux常用命令之檔案壓縮與解壓縮命令詳解Linux
- betterzip怎麼解壓檔案?如何使用BetterZip批次解壓壓縮檔案
- C++ MiniZip實現目錄壓縮與解壓C++
- Nginx網路壓縮 CSS壓縮 圖片壓縮 JSON壓縮NginxCSSJSON
- Mac壓縮解壓工具:Keka for MacMac
- A-Zippr for Mac 壓縮解壓工具Mac
- linux下壓縮、解壓命令大全Linux
- Linux中Bin檔案壓縮包解壓執行Linux
- 實用的壓縮解壓工具:WinZip for MacMac
- SharpZipLib解壓資料夾 包含空資料夾