RAR 檔案格式

在資料為王、儲存效率至關重要的數位時代,RAR 存檔仍然是壓縮和組織文件的堅定且普遍的解決方案。

關於 RAR 存檔訊息

RAR 存檔格式是「Roshal Archive」的縮寫,是一種廣泛使用且備受推崇的壓縮格式,旨在減小檔案和資料夾的大小,同時保持其完整性。 RAR 由 Eugene Roshal 開發,以其高壓縮比和支援各種壓縮方法而聞名。

RAR 存檔文件格式歷史信息

RAR 由 Eugene Roshal 在 20 世紀 90 年代初創立。它最初是作為一種專有格式引入的,重點是高效壓縮和錯誤恢復。多年來,RAR 因其卓越的壓縮能力和強大的功能而廣受歡迎。儘管 RAR 最初是閉源的,但後來已部分開放,解壓縮演算法也向公眾開放。自 2013 年起,第 5 版格式成為預設選項。現代 WinRAR 仍然可以壓縮到舊版 4 版本。

RAR 存檔的結構

RAR 存檔的結構是壓縮檔案和資料夾的集合。它們通常由一系列區塊組成,每個區塊在檔案中都有特定的用途。這些區塊包括文件資料、標頭和可選的復原記錄,可用於修復損壞的檔案。大型檔案可以分成較小的部分或合併在一起。也可以建立自解壓縮檔案。

RAR 壓縮方法

RAR 只有一種壓縮演算法。此格式支援內容和檔案名稱的強 AES 加密。 WinRAR 允許建立「可靠」檔案,透過一起分析多個檔案來提供更好的壓縮比。過時版本 RAR4 可選擇支援文字、音訊和影像資料的專用壓縮。

RAR 存檔支援的操作

Aspose.ZIP 允許使用者提取特定條目或整個存檔。不支援建立和修改 RAR 存檔。 Aspose.ZIP 能夠擷取現代 RAR5 和舊 RAR4 版本的檔案。

RAR 檔案 - 內部結構

RAR 存檔具有分層內部結構,包括標頭、壓縮資料和可選的復原記錄。該結構允許高效提取特定文件,而無需解壓縮整個存檔。如果存檔已加密,則它包含加密標頭。主標頭包括可選的定位器,可快速存取不同服務區塊的位置,而無需掃描整個檔案。每個條目都有文件和服務標頭。這些標頭包含檔案屬性和元數據,包括校驗和、系統時間、名稱和類似詳細資訊。

RAR 檔案 - 內部結構

RAR 存檔的受歡迎程度和支持

RAR 檔案因其出色的壓縮比和多功能性而被廣泛用於壓縮和共享檔案。它們在 Windows 和 macOS 生態系統中都很受歡迎,並得到各種軟體工具的大力支援。雖然 RAR 並不完全開源,但許多第三方應用程式和程式庫提供跨不同平台創建、提取和管理 RAR 存檔的支援。

RAR 使用範例

Aspose.ZIP API 允許在您的應用程式中提取檔案,而不需要任何其他第三方應用程式。 Aspose.ZIP API 提供 RarArchive 類別來處理 RAR 檔案。 PI 提供 RarArchiveEntry 類別來表示 RAR 存檔中的單一檔案。

Extract an RAR Entry

The following code example demonstrates how to extract an entry using RarArchive instance.

    using (RarArchive archive = new RarArchive("archive.rar"))
    {
        using (var destination = File.Create(dataDir + "firstEntry.txt"))
        {
                using (var source = archive.Entries[0].Open())
                {
                    byte[] buffer = new byte[1024];
                    int bytesRead;
                    while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)                       
                        destination.Write(buffer, 0, bytesRead);
                            
                }                    
        }
    }

Extract an Encrypted Entry

The following code example demonstrates how to extract an encrypted entry using RarArchive instance.

    FileInfo fi = new FileInfo("encrypted.rar");
    using (RarArchive archive = new RarArchive(fi.OpenRead()))
    {
        using (var destination = File.Create(dataDir + "firstEntry.txt"))
        {
            archive.Entries[0].Extract(destination, "p@s$w0rd");                
        }
    }

Extracting Compressed Directory

The following code example demonstrates how to all the files from RarArchive instance.

    using (RarArchive archive = new RarArchive("archive.rar"))
    {
        archive.ExtractToDirectory("extracted");
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

有關 RAR 存檔的其他信息

人們一直在問

1. RAR 比 ZIP 更有效率嗎?

RAR 是否比 ZIP 更有效率取決於特定的用例和被壓縮的資料類型。 RAR 和 ZIP 都是流行的存檔格式,但它們在壓縮效率、功能和相容性方面存在一些差異。

2. 如何寫 RAR 存檔?

唯一允許合成的工具是 WinRAR。您將找不到任何其他軟體或庫,因為這是 RAR 許可證

3. 所有 RAR 檔案都安全嗎?

RAR 檔案本身通常是安全的,因為它們只是可以保存各種類型資料的存檔容器,類似於 ZIP 檔案 。然而,RAR 檔案的安全性取決於它所保存的內容及其來源。