RAR 是一種常用的存檔文件格式,支持數據的無損壓縮。通常,人們更喜歡 RAR 而不是 ZIP,因為它提供更好的壓縮率並使存檔大小更小。但是,在某些情況下,您可能需要將 RAR 文件轉換為 ZIP 檔案。為此,本文介紹瞭如何在 C# 中以編程方式將 RAR 文件轉換為 ZIP。
用於 RAR 到 ZIP 轉換的 C# .NET API
Aspose.ZIP for .NET 是一個強大的歸檔 API,支持創建和操作流行的歸檔格式。我們將利用此 API 將 RAR 文件轉換為 ZIP 格式。要使用 API,您可以從 NuGet 安裝它或從 下載部分 下載其 DLL。
PM> Install-Package Aspose.Zip
在 C# 中將 RAR 文件轉換為 ZIP
使用 Aspose.ZIP for .NET,只需幾個步驟即可將 RAR 文件轉換為 ZIP 格式。以下是在 C# 中將 RAR 文件轉換為 ZIP 存檔的步驟。
為 ZIP 存檔創建 Archive 類的實例。
使用 RarArchive 類加載 RAR 存檔。
使用 RarArchive.Entries 集合循環遍歷 RAR 存檔的條目。
對於 RAR 中的每個條目,執行以下步驟:
使用 RarArchive.Entries[int].Extract(MemoryStream) 方法將條目提取到 MemoryStream 對象。
使用 Archive.CreateEntry(String, MemoryStream) 方法將條目添加到 ZIP。
最後,使用 Archive.Save(String) 方法保存生成的 ZIP 存檔。
以下代碼示例顯示瞭如何在 C# 中將 RAR 文件轉換為 ZIP 格式。
// 為 ZIP 存檔創建 Archive 類的實例
using (Archive zip = new Archive())
{
// 載入 RAR 檔案
using (RarArchive rar = new RarArchive(@"D:\archvie.rar"))
{
// 遍歷 RAR 文件的條目
for (int i = 0; i < rar.Entries.Count; i++)
{
// 將每個條目從 RAR 複製到 ZIP
if (!rar.Entries[i].IsDirectory)
{
var ms = new MemoryStream();
rar.Entries[i].Extract(ms);
ms.Seek(0, SeekOrigin.Begin);
zip.CreateEntry(rar.Entries[i].Name, ms);
}
else
zip.CreateEntry(rar.Entries[i].Name + "/", Stream.Null);
}
}
// 保存生成的 ZIP 存檔
zip.Save("output.zip");
}
獲取免費的 API 許可證
您可以獲得免費的臨時許可證,以在沒有評估限制的情況下使用 Aspose.ZIP for .NET。
結論
在本文中,您了解瞭如何在 C# 中以編程方式將 RAR 存檔轉換為 ZIP 格式。分步指南和代碼示例演示瞭如何在幾個步驟內將 RAR 文件轉換為 ZIP 存檔。您可以閱讀 Aspose.ZIP for .NET 的 文檔 來探索其他功能。此外,您可以通過我們的 論壇 與我們分享您的疑問。