使用 GroupDocs.Metadata 获取 Java 压缩大小
在现代数据中心的应用中,get compressed size java 是一个常见需求,当您需要在不解压的情况下检查存储在 RAR 归档中的文件大小时尤为重要。无论您是在构建备份验证工具、数字资产管理系统,还是文件共享门户,读取这些元数据都能节省时间和系统资源。本指南将手把手教您如何使用 GroupDocs.Metadata for Java 快速、安全且代码量极少地获取每个条目的压缩大小。
快速答案
- 需要的库是什么? GroupDocs.Metadata for Java
- 我可以检索压缩大小吗? 是的 – 对每个条目调用
rarFile.getCompressedSize() - 我需要许可证吗? 免费试用可用于开发;生产环境需购买正式许可证
- 支持哪个 Java 版本? Java 8+(任何兼容 Maven 的环境)
- 批处理是否可行? 完全可以 – 循环处理文件夹中的 RAR 文件并复用相同代码
- 如何处理大型归档? 逐条处理条目,完成后关闭 metadata 对象
什么是 “get compressed size java” 以及它为何重要?
Get compressed size java 读取文件在 RAR 容器中存储时的大小。该数值告诉您文件在压缩后占用了多少空间,帮助您验证压缩比、估算传输时间,并在清单报告中同时展示原始大小和压缩大小。
如何从 RAR 归档中获取 get compressed size java?
使用 GroupDocs.Metadata 加载 RAR 归档,遍历其条目,并对每个文件条目调用 getCompressedSize() 方法。此方式仅读取归档头部,无需解压或完整加载文件,即使是数百兆的归档,内存使用也保持在 5 MB 以下。
步骤 1:初始化 Metadata 对象
通过提供 RAR 文件路径创建 Metadata 实例。该对象在内存中表示归档,并让您访问其内部结构。
步骤 2:获取 RAR 归档的根包
调用 metadata.getRootPackage() 获取包含所有条目的顶层包。返回的 ArchivePackage 让您枚举归档内的文件和文件夹。
步骤 3:检索总条目数
使用 archivePackage.getEntries().size() 了解存储了多少项。知道条目数量有助于为批处理作业分配进度跟踪结构。
步骤 4:遍历每个文件并读取其属性
遍历 archivePackage.getEntries()。对每个表示文件(而非文件夹)的条目,调用 entry.getCompressedSize() 获取其压缩大小(字节)。如果需要进行比率计算,还可以读取 entry.getOriginalSize() 获取未压缩大小。
故障排除提示
- 验证
rarFilePath指向一个存在的 RAR 文件。 - 确保应用程序对归档具有读取权限。
- 如果遇到 “unsupported format” 错误,确认 RAR 版本与 GroupDocs.Metadata 兼容(支持 RAR 4 和 RAR 5)。
为什么在 RAR 文件中使用 GroupDocs.Metadata?
GroupDocs.Metadata 提供高级 API,能够在不解压文件的情况下读取归档头部,快速获取压缩大小、原始大小、时间戳等属性。它支持 RAR 4 与 RAR 5 格式,高效处理大型归档,并抽象格式细节,使开发者能够编写跨归档类型的统一代码。
常见使用场景
- 数据管理系统 – 自动编目归档内容以供可搜索的清单。
- 数字资产管理 – 使用归档级别的细节(如压缩大小)丰富媒体库。
- 备份验证 – 将存储的压缩大小与预期值比较,以检测损坏。
- 文件共享平台 – 在不完全提取文件的情况下显示归档摘要,提升用户体验。
性能考虑因素
- 仅访问所需属性 – 如果只需要文件名和大小,避免调用耗时的方法。
- 释放 metadata 对象 – 处理完后调用
metadata.close()以释放本机资源。 - 批处理 – 在循环中处理多个 RAR 文件,复用同一 JVM 以减少启动开销。
常见问题解答
问:GroupDocs.Metadata for Java 是什么?
答:GroupDocs.Metadata for Java 是一个库,可在不提取文件的情况下读取、更新和管理超过 50 种文件格式(包括 RAR、ZIP、7z)的元数据。
问:如何获取完整访问的许可证?
答:访问 GroupDocs purchase page 以获取临时或永久许可证;开发者可使用免费试用版。
问:我可以将 GroupDocs.Metadata 与 RAR 之外的其他归档类型一起使用吗?
答:可以,相同的 API 同时支持 ZIP、7z 等多种归档格式,便于统一管理所有归档元数据任务。
问:处理大型 RAR 文件时常见的陷阱是什么?
答:主要问题是内存消耗和文件句柄限制;通过逐条处理条目并及时关闭 Metadata 对象可予以缓解。
问:如果遇到问题,我可以在哪里获得支持?
答:请前往 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());
}