Получить сжатый размер Java с GroupDocs.Metadata

В современных ориентированных на данные приложениях get compressed size java часто требуется, когда необходимо проверить размер файлов, хранящихся внутри RAR‑архивов, без их извлечения. Будь то утилита проверки резервных копий, система управления цифровыми активами или портал обмена файлами, чтение этих метаданных экономит время и системные ресурсы. Это руководство покажет, как с помощью GroupDocs.Metadata для Java быстро, безопасно и с минимальным количеством кода получить сжатый размер каждой записи.

Быстрые ответы

  • Какая библиотека нужна? GroupDocs.Metadata for Java
  • Могу ли я получить сжатые размеры? Да – вызовите rarFile.getCompressedSize() для каждой записи
  • Нужна ли лицензия? Бесплатная пробная версия подходит для разработки; полная лицензия требуется для продакшн
  • Какая версия Java поддерживается? Java 8+ (любая среда, совместимая с Maven)
  • Возможна ли пакетная обработка? Абсолютно – пройдитесь по папке с RAR‑файлами и переиспользуйте тот же код
  • Как обрабатывать большие архивы? Обрабатывайте записи по одной и закрывайте объект metadata после завершения

Что такое “get compressed size java” и почему это важно?

Get compressed size java считывает размер файла в том виде, в котором он хранится внутри RAR‑контейнера. Это значение показывает, сколько места файл занимает после сжатия, позволяя проверять коэффициенты сжатия, оценивать время передачи и отображать как оригинальный, так и сжатый размер в отчетах инвентаризации.

Как получить сжатый размер java из RAR‑архивов?

Загрузите RAR‑архив с помощью GroupDocs.Metadata, пройдитесь по его записям и вызовите метод getCompressedSize() для каждой файловой записи. Этот подход считывает только заголовок архива, поэтому извлечение или полная загрузка файлов не происходит, поддерживая использование памяти ниже 5 МБ даже для архивов размером в несколько сотен мегабайт.

Шаг 1: Инициализировать объект Metadata

Создайте экземпляр Metadata, указав путь к RAR‑файлу. Этот объект представляет архив в памяти и предоставляет доступ к его внутренней структуре.

Шаг 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).

Почему использовать GroupDocs.Metadata для RAR‑файлов?

GroupDocs.Metadata предоставляет высокоуровневый API, который читает заголовки архивов без их извлечения, обеспечивая быстрый доступ к свойствам, таким как сжатый размер, оригинальный размер и метки времени. Он работает с форматами RAR 4 и RAR 5, эффективно обрабатывает большие архивы и абстрагирует детали, специфичные для формата, позволяя разработчикам писать единый код для разных типов архивов.

Распространённые сценарии использования

  1. Системы управления данными – автоматическое каталогизирование содержимого архивов для поисковых инвентарей.
  2. Управление цифровыми активами – обогащение медиа‑библиотек деталями уровня архива, такими как сжатый размер.
  3. Проверка резервных копий – сравнение сохранённых сжатых размеров с ожидаемыми значениями для обнаружения повреждений.
  4. Платформы обмена файлами – отображение сводки архива без полного извлечения файлов, улучшая пользовательский опыт.

Соображения по производительности

  • Доступ только к необходимым свойствам – избегайте вызова тяжёлых методов, если нужны лишь имена файлов и их размеры.
  • Освобождать объекты 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: Можно ли использовать GroupDocs.Metadata с другими типами архивов, кроме RAR?
A: Да, тот же API поддерживает ZIP, 7z и несколько других форматов архивов, позволяя использовать единый код для всех задач работы с метаданными архивов.

Q: Какие распространённые подводные камни при работе с большими RAR‑файлами?
A: Основные проблемы — потребление памяти и ограничения количества открытых файлов; смягчайте их, обрабатывая записи по одной и своевременно закрывая объект Metadata.

Q: Где можно получить поддержку при возникновении проблем?
A: Форум GroupDocs free support forum предоставляет помощь как от инженеров поставщика, так и от сообщества.

Ресурсы

Заключение

Теперь вы знаете как использовать 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());
}

Связанные руководства