在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
ZIP 是一種支持無損數據壓縮的存檔條目文件系統格式。 ZIP 檔案可能包含一個或多個已壓縮的文件或目錄。 ZIP 檔案格式允許多種壓縮算法,儘管 DEFLATE 是最常見的。 隨後,許多軟件工具迅速支持 ZIP 格式。 主流作業系統提供商早已包含 ZIP 壓縮檔支援。微軟自 Windows 98 就開始支援 ZIP 檔,其他廠商也隨之跟進。
在這篇博客中,我們將探索一種使用IronZIP打開 ZIP 壓縮檔案或提取檔案的現代、簡單且高效的方法。 我們將學習有關 ZIP 檔案的一般資訊及其優點。 然後我們將看到系統名稱空間中可用於處理 ZIP 文件格式的選項。 接下來我們將探討打開ZIP檔、提取ZIP檔到臨時資料夾、創建新的ZIP檔並將文件添加到現有ZIP檔的逐步說明。
壓縮:此技術使用各種壓縮算法,例如 Implode、Deflate、Deflate64、bzip2、LZMA、WavPack、PPMd 等,減小歸檔文件/資料夾的大小。
縮短傳輸時間:較小的文件大小意味著更快的傳輸時間,特別是在透過互聯網傳送文件時。 這對於電子郵件附件以及從網站上傳或下載文件特別有利。
文件整合:ZIP 檔案使您能夠將多個文件整合成一個檔案,減少需要管理的文件數量。 這對於組織專案或分發由多個檔案組成的軟體非常有用。
IronZIP 程式庫和文件的介紹可以在這裡找到。 在 C# 應用程式中,ZIP 檔案可以透過多種方式創建和解壓縮。 IronZIP NuGet 套件具有所有功能,可將檔案存檔為不同格式,包括 ZIP、TAR、GZIP 和 BZIP2。以下是如何在現代應用程序編程中使用 IronZIP 建構下一代應用程序的範例步驟,以開啟 ZIP 檔案、提取 ZIP 檔案、創建新的 ZIP 檔案等。
可以使用 Visual Studio 創建 .NET 控制台應用程式。 打開 Visual Studio 並選擇創建專案。 在這裡,您可以看到用於創建專案的各種模板。 最簡單的展示或測試代碼的方法是創建一個控制台應用程式。 我們將選擇「控制台應用程式」專案模板。
在以下窗口中,您可以輸入專案名稱、專案在文件系統中的儲存位置,最後一項是解決方案資料夾的路徑。 您可以將解決方案與專案文件夾保存在同一個文件夾中,或放在不同的文件夾中。
下一步是為專案選擇 .NET Framework 版本。 如果您想在特定版本中開發,請指定您喜歡的版本,否則請始終選擇最新的穩定版本來創建專案。 最新版本可以從微軟網站下載。然後點擊建立以生成控制台應用程式。
這將從模板創建預設專案,並將專案和解決方案檔案存儲在指定的目錄中。 建立專案後,它將看起來類似如下。 有時候,在最新版本中,該類別不會在 program.cs 中使用。
using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string [] args)
{
Console.WriteLine("Hello World!");
}
}
}
using System;
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
namespace MyApp // Note: actual namespace depends on the project name.
{
internal class Program
{
static void Main(string [] args)
{
Console.WriteLine("Hello World!");
}
}
}
Imports System
' See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!")
Dim MyApp As namespace ' Note: actual namespace depends on the project name.
If True Then
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
' internal class Program
' {
' static void Main(string [] args)
' {
' Console.WriteLine("Hello World!");
' }
' }
End If
要創建新的 ZIP 文件並提取所有 ZIP 壓縮存檔文件,我們可以使用預設庫中的 System.IO.Compression。 在上述代碼中,ZipFile.OpenRead
和 ZipFile.Open
靜態方法可用於開啟或解壓 ZIP 文件。
using System.IO.Compression;
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath,
System.IO.Compression.ZipArchive zipArchive)
{
var file = Path.GetFileName(filePath); // get file name in var file
zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip, ZipArchiveMode.Create))
{
AddEntry(file1, archive);
AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
using System.IO.Compression;
Console.WriteLine("-----------Zip - Unzip-----------");
static void AddEntry(string filePath,
System.IO.Compression.ZipArchive zipArchive)
{
var file = Path.GetFileName(filePath); // get file name in var file
zipArchive.CreateEntryFromFile(filePath, file);
}
var zip = "myFile.zip";
using (System.IO.Compression.ZipArchive archive = ZipFile.OpenRead(zip, ZipArchiveMode.Create))
{
AddEntry(file1, archive);
AddEntry(file2, archive);
}
var dirToExtract = "extract";
if (Directory.Exists(dirToExtract) == false)
{
Directory.CreateDirectory(dirToExtract);
}
ZipFile.ExtractToDirectory(zip, dirToExtract); //extracted file
Imports System.IO.Compression
Console.WriteLine("-----------Zip - Unzip-----------")
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'static void AddEntry(string filePath, System.IO.Compression.ZipArchive zipArchive)
'{
' var file = Path.GetFileName(filePath); ' get file name in var file
' zipArchive.CreateEntryFromFile(filePath, file);
'}
Dim zip = "myFile.zip"
Using archive As System.IO.Compression.ZipArchive = ZipFile.OpenRead(zip, ZipArchiveMode.Create)
AddEntry(file1, archive)
AddEntry(file2, archive)
End Using
Dim dirToExtract = "extract"
If Directory.Exists(dirToExtract) = False Then
Directory.CreateDirectory(dirToExtract)
End If
ZipFile.ExtractToDirectory(zip, dirToExtract) 'extracted file
在上面的代碼中,我們有一個名為 myFile.zip 的 ZIP 文件,並且我們使用 system 命名空間。 OpenRead
方法用於以指定模式打開 ZIP 文件。 這也可以用來創建新的 ZIP 壓縮檔案。 一旦打開,我們可以使用方法AddEntry
新增一個存檔條目,然後使用ExtractToDirectory
將ZIP存檔文件或選定文件提取到指定的目錄。 檢查目錄是否存在。 如果不存在,則使用Directory.CreateDirectory
創建目錄。 dirToExtract
是解壓縮 ZIP 壓縮檔案的目錄路徑。 程式碼中的最後一行ZipFile.ExtractToDirectory(zip, dirToExtract)
用來解壓 ZIP 文件。所有檔案將保存在目錄路徑中。
從 Visual Studio 開啟專案管理員並搜尋 IronZIP 套件。 然後選擇最新版本並點擊安裝。 您可以從下拉選單中更改要安裝的版本。 然後點擊安裝。
!如何在 C# 中打開 Zip 文件:圖 4 - NuGet 程式包管理器
使用 IronZIP 建立 ZIP 壓縮檔案並新增檔案
IronZIP 是由 Iron Software 開發的檔案壓縮和解壓縮庫。 除了廣泛使用的ZIP格式外,它還可以處理TAR、GZIP和BZIP2。
IronZIP 是一個 C# ZIP 壓縮歸檔庫,強調準確性、易用性和速度。 使用者友好的 API 使開發人員能夠在幾分鐘內輕鬆將歸檔功能添加到現代 .NET 項目中。
IronZIP 相較於 System.Io.Compression
庫具有許多優勢。 在壓縮過程中,您可以指定所需的壓縮比,並使用不同的壓縮算法,例如 ZIP、TAR、GZIP、BZIP2。它還支援移動、網頁和桌面平台以及各種 .NET 版本。
IronZIP 擁有類別 IronArchive
,可以用來建立 ZIP 文件,提取 ZIP 文件,並且透過單一函式庫支援 TAR、GZIP 和 BZIP2 壓縮檔的建立。 以下是建立 ZIP 檔案的程式碼。IronArchive
類別用來建立/開啟 ZIP 檔案,然後進行封存。Add
方法用於像下面這樣將檔案條目新增到封存中。
// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
// Add files to the zip
archive.Add(file1);
archive.Add(file2);
archive.SaveAs(archivePath);
}
// setup
var archivePath= "ironZip.zip";
if (File.Exists(archivePath))
{
File.Delete(archivePath);
}
// zip file
using (var archive = new IronZipArchive(9))
{
// Add files to the zip
archive.Add(file1);
archive.Add(file2);
archive.SaveAs(archivePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
初始源代碼包含指定 ZIP 壓縮檔案名稱的設置,並檢查指定的目錄是否存在。 然後我們使用Add
方法將文件歸檔以創建一個ZIP文件。 壓縮參數的第二個參數中,1 表示較低,9 表示較高。 可以使用最大壓縮率9對txt文件進行無損壓縮,而圖像文件可以使用較低的壓縮率以避免數據丟失。
IronArchive
類別還可以用來從 ZIP 壓縮檔案中提取文件。所有文件都使用 IronArchive.ExtractArchiveToDirectory
提取,這有助於將所有文件提取到如下所示的特定目錄中。
var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
var extractionPath = "IronZipFiles";
// extract files from zip
if (Directory.Exists(extractionPath) == false)
{
Directory.CreateDirectory(extractionPath);
}
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath);
Dim extractionPath = "IronZipFiles"
' extract files from zip
If Directory.Exists(extractionPath) = False Then
Directory.CreateDirectory(extractionPath)
End If
IronArchive.ExtractArchiveToDirectory(archivePath, extractionPath)
上面的程式碼將 ZIP 檔案提取到目錄中。 程式碼檢查目錄是否存在,然後將 ZIP 壓縮檔案解壓縮到指定的目錄。
要使上述程式碼運作,需要授權密鑰。 此金鑰需要放置在 appsettings.json 中。
"IronZip.LicenseKey": "your lincese key"
"IronZip.LicenseKey": "your lincese key"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'"IronZip.LicenseKey": "your lincese key"
開發人員可在這裡註冊以獲得試用許可證,並且不需要信用卡。 您可以提供電子郵件地址並註冊免費試用。
使用靜態方法FromFile
從IronZIP開啟現有的壓縮檔案。此方法還需要指定將作為輸出的新壓縮檔案的檔名。
//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
// Add files
file.Add(file3);
}
//add to existing archive
const string file3 = ".\\image3.png";
var archivePlusPath = "ironZipPlus.zip";
using (var file = IronArchive.FromFile(archivePath, archivePlusPath))
{
// Add files
file.Add(file3);
}
'add to existing archive
Const file3 As String = ".\image3.png"
Dim archivePlusPath = "ironZipPlus.zip"
Using file = IronArchive.FromFile(archivePath, archivePlusPath)
' Add files
file.Add(file3)
End Using
該代碼使用IronArchive.FromFile
靜態方法來打開現有的ZIP文件,然後將新文件添加為存檔條目。 一旦文件被處理掉,文件就成功保存。
IronZIP 庫根據客戶/用戶的反饋不斷更新,所有更新都可以在這裡找到。
總結來說,ZIP 文件編程是在現代應用程式開發中必須培養的一項重要技能,因為雲端主機提供商會對存儲和數據傳輸成本收費。 了解這項技能可以幫助程式設計師降低應用程式的成本並提高應用程式的性能。
透過遵循安裝步驟並探索提供的程式碼範例,開發人員可以快速利用IronZIP的強大功能,輕鬆創建新檔案並處理壓縮/解壓縮任務。 隨著越來越多的應用程式現代化並移動到雲端,擁有像 IronZIP 這樣可靠的 ZIP 函式庫,使 C# 開發人員能夠滿足現代應用程式開發的需求。 因此,擁抱IronZIP的力量,為在 C# 應用程式中處理 ZIP 文件開啟新的可能性。
IronZIP為其開發者提供了廣泛的支持。 如需了解更多關於 IronZIP for C# 的運作方式,請訪問此處。 IronZIP 提供免費試用許可證,這是一個瞭解 IronZIP 及其功能的絕佳機會。
Iron Software 擁有各種其他庫,探索它們以獲取更多知識,並更新您的技能,以程式設計/開發現代應用程式。