XAR 檔案格式

XAR 是 eXtensible ARchive 的縮寫,是一種用於歸檔和壓縮檔案的通用檔案格式。 XAR 最初由 OpenDarwin 專案開發,設計靈活且可擴展,允許包含各種類型的元資料並支援多種壓縮演算法。該格式因其在 macOS 中用於打包軟體和系統更新而特別引人注目。
XAR 存檔以結構化格式儲存文件,其中包括元資料目錄,該目錄提供有關存檔中每個文件的詳細資訊。這使得 XAR 成為需要強大且適應性強的歸檔解決方案的開發人員和系統管理員的強大工具。雖然不像 ZIP 或 TAR 等格式那麼普遍,但 XAR 因其處理複雜資料結構以及整合到特定環境(尤其是 macOS)的能力而受到重視。

關於 XAR 檔案信息

XAR 存檔資訊包含使用可擴充存檔 (XAR) 格式建立的存檔中包含的元資料和資料。 XAR 檔案儲存各種元數據,包括檔案屬性、時間戳記以及有關所使用的壓縮演算法的資訊。此元資料在正確識別和提取檔案內容方面發揮著至關重要的作用。
除了基本檔案資訊之外,XAR 檔案通常還包含存檔中每個檔案的元資料目錄,詳細說明檔案路徑、權限和校驗和。這種詳細程度可確保檔案在解壓縮過程中可以準確地恢復到原始狀態。 XAR 存檔資訊還可能包括有關所採用的壓縮方法的詳細信息,例如演算法的類型和使用的任何特定選項,這對於維護存檔資料的完整性和準確性至關重要。

XAR的演變

XAR 存檔格式起源於 OpenDarwin 項目,這是一個旨在創建 Darwin 相容作業系統的開源計劃。 XAR 被設計為一種多功能且可擴展的存檔格式,旨在透過整合豐富的元資料並支援各種壓縮演算法來克服現有存檔格式的限制。
多年來,XAR 格式不斷增強,旨在提高效能、安全性和相容性。以下是其演變的簡要概述:

  • 2004 年:eXtensible ARchive (XAR) 格式由Apple Inc. 開發,用於Mac OS X。更新和系統成分。
  • 2005 年:XAR 成為 Apple Mac OS X 安裝套件格式 (.pkg) 中的關鍵元件,允許在 Mac 系統上高效分發和安裝軟體。此格式處理複雜文件結構和元資料的能力使其成為此目的的理想選擇。
  • 2007 年:XAR 開源,讓 Apple 以外的開發人員可以出於自己的目的使用和修改該格式。此舉將 XAR 的潛在應用擴展到了 macOS 之外,但其使用主要仍保留在 Apple 生態系統內。
  • 2010 年代:儘管 XAR 最初做出了承諾,但它並未在 macOS 之外獲得廣泛採用。然而,它繼續在蘋果的軟體開發流程中使用,特別是系統和應用程式打包。
  • 2020 年代:XAR 仍然是主要與 Apple 的打包和安裝系統相關的專用格式。雖然不像其他格式那樣廣泛使用,但它仍然因其靈活性和在檔案中包含豐富元資料的能力而受到認可。

XAR 檔案結構

XAR(可擴展存檔)格式旨在實現儲存和壓縮檔案的靈活性和效率。它由幾個關鍵組件組成:

  • 標頭: 包含有關存檔的基本元數據,例如格式版本和大小資訊。
  • 目錄 (TOC): 基於 XML 的索引,列出檔案、檔案大小、壓縮方法和其他詳細資訊。
  • 資料: 實際壓縮或未壓縮的檔案內容。
  • 頁尾: 用於附加資訊或校驗和的選用部分。

這種格式的好處

與傳統存檔格式相比,XAR 格式具有多種優點:

  • 靈活性: XAR 支援各種壓縮演算法,允許使用者為其資料選擇最佳方法。
  • 可擴展性: 此格式可以使用自訂元資料進行擴展,提供有關存檔及其內容的附加資訊。
  • 效率: XAR 的結構針對文件的高效儲存和檢索進行了最佳化。
  • 元資料豐富性: 包含詳細的文件元資料可以更好地組織和管理存檔資料。
  • 自包含包: XAR 可用於建立自包含包,簡化軟體分發和安裝。 效能:與其他存檔格式相比,XAR 通常提供更好的效能,尤其是在處理大型檔案時。

XAR 存檔支援的操作

Aspose.ZIP 允許使用者提取特定條目或整個存檔。 XAR歸檔支援多種操作,使用戶能夠有效地管理和存取歸檔資料。這些操作大致可以分為:

  1. 提取:
    • 將整個存檔內容提取到指定位置。
    • 從檔案中提取特定檔案或目錄。
    • 在提取過程中保留原始文件結構和元資料。
  2. 組成:
    • 建立新的 XAR 檔案。
    • 將檔案和目錄新增至現有的 XAR 檔案中。
    • 指定存檔中各個檔案的壓縮方法。
    • 在檔案中包含自訂元資料以增強組織。

XAR檔案結構

XAR(可擴展存檔)格式在設計時考慮了靈活性和可擴展性,使其非常適合複雜的文件打包任務。以下是 XAR 存檔的典型結構的概述:

XAR檔案結構

內部檔案結構

  • **標頭:**標頭包含有關存檔本身的基本元數據,例如:
    • 幻數:將檔案標識為 XAR 檔案。
    • 版本號:指定XAR格式版本。
    • 目錄大小 (TOC):指示 TOC 部分的長度。
    • 堆的大小:定義資料儲存區域的大小。
  • 目錄 (TOC): TOC 是一種基於 XML 的結構,用於對存檔中的文件進行編目。它包含每個文件的詳細信息,包括:
    • 檔案路徑:存檔中檔案的原始路徑。
    • 檔案大小:檔案的未壓縮大小。
    • 壓縮方法:檔案所使用的壓縮演算法(例如, gzipbzip2 )。
    • 校驗和:用於驗證資料完整性的雜湊值。
    • 檔案屬性:權限、修改時間和其他檔案元資料。
  • **堆:**堆是儲存壓縮或未壓縮檔案內容的資料儲存區域。 TOC 提供偏移量和長度來定位堆中的特定檔案。

XAR 使用範例

使用 Aspose.Zip,您可以輕鬆地從 XAR 檔案中提取單一檔案或整個目錄結構。這種靈活性使您可以存取存檔中的特定數據,而不會影響其完整性。此外,該庫還提供了在提取過程中保留檔案屬性的選項,例如權限和時間戳記。 Aspose.Zip 也有助於建立 XAR 檔案。您可以自由選擇要包含在存檔中的特定檔案或整個資料夾。此外,該庫支援各種壓縮演算法,使您能夠優化檔案大小並平衡壓縮率與效能要求。以下是操縱 XAR 檔案的一些範例:

Create XAR archive with two entries compressed with Zlib method via C#.

    FileInfo fi1 = new FileInfo("alice29.txt");
    FileInfo fi2 = new FileInfo("asyoulik.txt");

    using (var archive = new XarArchive(new XarZlibCompressionSettings()))
    {
        archive.CreateEntry("alice29.txt", fi1, false);
        archive.CreateEntry("fields.c", fi2, false);
        archive.Save(xarFile);
    }

Extract Whole XAR Arcive via C#.

    using (XarArchive xarArchive = new XarArchive("data.xar"))
    {
        xarArchive.ExtractToDirectory("data");
    }

Create XAR archive with two entries compressed with Zlib method via Java

    java.io.File fi1 = new java.io.File("alice29.txt");
    java.io.File fi2 = new java.io.File("asyoulik.txt");
    String xarFile = "output.xar";

    try (XarArchive archive = new XarArchive(new XarZlibCompressionSettings())) {
        archive.createEntry("alice29.txt", fi1, false);
        archive.createEntry("fields.c", fi2, false);
        archive.save(xarFile);
    }

Extract Whole XAR Arcive using Java.

    try (XarArchive archive = new XarArchive("data.xar")) {
        archive.extractToDirectory("data");
    }

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

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

有關可擴展存檔的其他信息

人們一直在問

1. 什麼是 XAR 檔案以及它的用途是什麼?

XAR(可擴充存檔)是一種用於存檔和壓縮檔案的檔案格式。它主要是為在 macOS 生態系統中使用而開發的。 XAR 檔案可以在單一檔案中儲存多個檔案和目錄,通常會進行壓縮以節省空間。它們用於軟體分發、系統更新和一般文件打包。

2. XAR 是廣泛使用的存檔格式嗎?

與 ZIP 和 RAR 相比,XAR 較不常用。它對 macOS 生態系統的主要關注限制了其更廣泛的採用。然而,它的效率和功能使其成為該環境中特定用例的寶貴選擇。

3. 我可以在 Windows 上開啟 XAR 檔案嗎?

雖然可能有一些工具或函式庫可以在 Windows 上使用 XAR 存檔,但內部不支援這種格式。您可能會遇到相容性問題或限制。在這個作業系統中,最好使用專門處理 XAR 檔案的第三方 API。