使用 GroupDocs.Metadata 取得 Java 壓縮大小
在現代以資料為中心的應用程式中,get compressed size java 是一項常見需求,當您需要在不解壓的情況下檢查儲存在 RAR 壓縮檔內的檔案大小時。無論您是建立備份驗證工具、數位資產管理系統,或是檔案分享平台,讀取此中繼資料都能節省時間與系統資源。本指南將說明如何使用 GroupDocs.Metadata for Java 快速、安全且以最少程式碼取得每個項目的壓縮大小。
快速回答
- 需要哪個函式庫? GroupDocs.Metadata for Java
- 我可以取得壓縮大小嗎? Yes – call
rarFile.getCompressedSize()on each entry - 我需要授權嗎? A free trial works for development; a full license is required for production
- 支援哪個 Java 版本? Java 8+ (any Maven‑compatible environment)
- 是否支援批次處理? Absolutely – loop over a folder of RAR files and reuse the same code
- 如何處理大型壓縮檔? Process entries one‑by‑one and close the metadata object when finished
「get compressed size java」是什麼?為何重要?
Get compressed size java 讀取檔案在 RAR 容器內儲存時的大小。此數值告訴您檔案在壓縮後佔用的空間,讓您能驗證壓縮比例、估算傳輸時間,並在清單報告中同時顯示原始大小與壓縮大小。
如何從 RAR 壓縮檔取得 get compressed size java?
使用 GroupDocs.Metadata 載入 RAR 壓縮檔,遍歷其條目,並對每個檔案條目呼叫 getCompressedSize() 方法。此方法僅讀取壓縮檔標頭,無需解壓或完整載入檔案,即使是數百 MB 的壓縮檔,記憶體使用量也保持在 5 MB 以下。
步驟 1:初始化 Metadata 物件
透過提供 RAR 檔案路徑建立 Metadata 實例。此物件在記憶體中代表壓縮檔,並讓您存取其內部結構。
步驟 2:取得 RAR 壓縮檔的根套件
呼叫 metadata.getRootPackage() 以取得包含所有條目的最高層套件。返回的 ArchivePackage 讓您列舉壓縮檔內的檔案與資料夾。
步驟 3:取得條目總數
使用 archivePackage.getEntries().size() 以得知儲存了多少項目。了解總數有助於為批次作業配置進度追蹤結構。
步驟 4:遍歷每個檔案並讀取其屬性
遍歷 archivePackage.getEntries()。對於每個代表檔案(非資料夾)的條目,呼叫 entry.getCompressedSize() 取得其以位元組為單位的壓縮大小。若需未壓縮大小以計算比例,亦可讀取 entry.getOriginalSize()。
故障排除提示
- 確認
rarFilePath指向現有的 RAR 檔案。 - 確保應用程式對壓縮檔具有讀取權限。
- 若遇到「不支援的格式」錯誤,請確認 RAR 版本與 GroupDocs.Metadata 相容(支援 RAR 4 與 RAR 5)。
為何使用 GroupDocs.Metadata 處理 RAR 檔案?
GroupDocs.Metadata 提供高階 API,能在不解壓檔案的情況下讀取壓縮檔標頭,快速取得壓縮大小、原始大小與時間戳記等屬性。它支援 RAR 4 與 RAR 5 格式,能有效處理大型壓縮檔,並抽象化格式特定細節,使開發者能以統一程式碼處理各種壓縮檔類型。
常見使用案例
- 資料管理系統 – 自動編目壓縮檔內容,以供可搜尋的清單使用。
- 數位資產管理 – 以壓縮檔層級的細節(如壓縮大小)豐富媒體庫。
- 備份驗證 – 將儲存的壓縮大小與預期值比較,以偵測損毀。
- 檔案分享平台 – 在不完全解壓檔案的情況下顯示壓縮檔摘要,提升使用者體驗。
效能考量
- 僅存取必要屬性 – 若只需要檔名與大小,避免呼叫耗資的方法。
- 釋放 metadata 物件 – 處理完畢後呼叫
metadata.close()以釋放原生資源。 - 批次處理 – 在迴圈中處理多個 RAR 檔,重複使用同一 JVM 以減少啟動開銷。
常見問與答
Q: GroupDocs.Metadata for Java 是什麼?
A: GroupDocs.Metadata for Java 是一個函式庫,可在超過 50 種檔案格式(包括 RAR、ZIP 與 7z)中讀取、更新與管理中繼資料,且不需解壓檔案。
Q: 如何取得完整授權?
A: 前往 GroupDocs purchase page 取得臨時或永久授權;開發階段可使用免費試用版。
Q: 除 RAR 外,我能使用 GroupDocs.Metadata 處理其他壓縮檔類型嗎?
A: 可以,同一套 API 支援 ZIP、7z 以及其他多種壓縮檔格式,讓您能以統一程式碼處理所有壓縮檔的中繼資料工作。
Q: 處理大型 RAR 檔時常見的陷阱是什麼?
A: 主要問題是記憶體消耗與檔案句柄上限;可透過逐一處理條目並及時關閉 Metadata 物件來緩解。
Q: 若遇到問題,我該向哪裡尋求支援?
A: 可至 GroupDocs free support forum 取得供應商工程師與社群的協助。
資源
- 文件說明: GroupDocs Metadata Java Documentation
- API 參考: GroupDocs API Reference
- 下載: Latest Version Downloads
- GitHub: Source Code on GitHub
- 免費支援: GroupDocs Forum
- 發佈版本: GroupDocs.Metadata for Java releases
- 完整文件說明: comprehensive documentation
結論
您現在已了解 如何使用 GroupDocs.Metadata 從 RAR 壓縮檔中擷取完整的中繼資料,包括如何 get compressed size java 取得每個條目的壓縮大小。將此模式整合至您的專案,可提升資料管理能力、改善備份驗證,並在不需完整解壓的情況下豐富檔案搜尋體驗。
後續步驟
在官方文件中探索其他功能,例如更新條目註解或擷取雜湊資訊,並考慮將此中繼資料擷取與現有的索引流程結合,以建立完整可搜尋的壓縮檔儲存庫。
最後更新: 2026-06-22
測試環境: GroupDocs.Metadata 24.12 for Java
作者: GroupDocs
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/metadata/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>24.12</version>
</dependency>
</dependencies>
import com.groupdocs.metadata.Metadata;
public class MetadataSetup {
public static void main(String[] args) {
// Initialize metadata object
Metadata metadata = new Metadata("path/to/your/document");
System.out.println("Metadata initialized successfully.");
}
}
// Specify the path to your input RAR file
String rarFilePath = "YOUR_DOCUMENT_DIRECTORY/input.rar";
// Initialize Metadata object with the specified RAR file path\ nMetadata metadata = new Metadata(rarFilePath);
// Obtain the root package of the RAR archive
RarRootPackage root = metadata.getRootPackageGeneric();
// Retrieve and print the total number of entries in the RAR package
int totalEntries = root.getRarPackage().getTotalEntries();
system.out.println("Total Entries: " + totalEntries);
// Iterate over each file within the RAR archive
for (RarFile rarFile : root.getRarPackage().getFiles()) {
// Print file name, compressed size, modification date time, and uncompressed size
System.out.println("File Name: " + rarFile.getName());
System.out.println("Compressed Size: " + rarFile.getCompressedSize());
System.out.println("Modification Date Time: " + rarFile.getModificationDateTime());
System.out.println("Uncompressed Size: " + rarFile.getUncompressedSize());
}