Обзор

Архивы, состоящие из записей, имеют метод CreateEntries для сжатия всего каталога. Такие методы учитывают структуру каталогов и периодически компонуют все подпапки.
Также вы можете добавить одну запись файла в произвольный подкаталог, где бы ни находился архив.

Как заархивировать папку

Если вы хотите сжать папку, сохранив ее структуру, рассмотрите возможность использования интуитивно понятных функций Aspose.ZIP. Используйте параметры сжатия экземпляра Archive, такие как свойство PreserveDirectoryRoot, во время инициализации, чтобы сохранить структуру папок. Благодаря этому параметру сжатый архив будет отражать исходную иерархию, обеспечивая организованное представление данных. Это особенно выгодно при работе с обширными структурами папок, поскольку упрощает навигацию и поиск определенных файлов без необходимости распаковки. Aspose.ZIP .Net API предоставляет простое решение для сжатия папок с соблюдением их внутренней структуры, повышая эффективность процессов хранения и извлечения данных.
Пример:

    using (Archive archive = new Archive())
    {
        DirectoryInfo corpus = new DirectoryInfo(@"D:\Data");
        archive.CreateEntries(corpus);
        archive.Save("archive.zip");
    }

Sample 2:

Compose hierarchical structure with CreateEntry method

    using (Archive archive = new Archive())
    {
        FileInfo fi1 = new FileInfo("image.bmp");
        FileInfo fi2 = new FileInfo("lyrics.txt");
        archive.CreateEntry("data\\pictures\\photo.bmp", fi1);
        archive.CreateEntry("data\\text\\song.txt", fi2);
        archive.Save("archive.zip");
    }

Как заархивировать папку с помощью .NET

Метод CreateEntries имеет необязательный второй параметр includeRootDirectory, который указывает, нужно ли включать корневой каталог в архив. По умолчанию установлено значение true, поэтому в приведенном выше примере все записи архива будут расположены внутри папки «Данные». Если вы хотите, чтобы добавлялось только содержимое каталога, передайте туда false. В полученном архиве внутри папки «данные» будут папки «картинки» и «текст».

Как сжать папку в 7-ZIP с соблюдением ее структуры

7Zip-метод сжатия, сохраняющий структуру папок при архивировании. Это позволит улучшить организацию и удобство работы с архивами. CreateEntries — аналог метода архивирования 7Z. Он также имеет параметр includeRootDirectory.
Чтобы использовать сжатие 7-Zip с методом, сохраняющим структуру папок во время архивирования, ниже приведен пример, демонстрирующий, как этого добиться.

Create archive from directory

    using (SevenZipArchive archive = new SevenZipArchive())
    {
        DirectoryInfo corpus = new DirectoryInfo(@"D:\Data");
        archive.CreateEntries(corpus);
        archive.Save("archive.7z");
    }

Обзор 7-ZIP-архива

7-Zip, универсальная утилита архивирования, отличается высокой степенью сжатия и поддержкой различных форматов. Примечательно, что 7-Zip предлагает удобный способ добавления файлов без применения сжатия. Пользователи могут легко интегрировать файлы в архивы 7-Zip , сохраняя при этом исходную структуру данных, обеспечивая целостность их содержание.

Как сжать папку в TAR, сохранив ее структуру

Сжатие папок в формате TAR — распространенная практика для эффективного хранения и передачи данных. Однако сохранение структуры папок во время сжатия имеет решающее значение для поддержания организации и доступности архивных файлов. Архивирование папок в формате TAR обеспечивает удобное решение этой проблемы. Несмотря на это, традиционные методы сжатия часто игнорируют исходную структуру папок, что затрудняет навигацию и поиск определенных файлов в архиве. По умолчанию сжатие TAR не сохраняет исходную структуру папок, что может быть неудобно для пользователей, которым необходим доступ к определенным файлам в архиве. Помимо сжатия, tar-архив имеет тот же метод для архивирования всего каталога.

Sample 1:

Create archive from directory

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntries(@"D:\Data");
        archive.Save("archive.tar");
    }

Sample 2:

Combine archiving directory and single file

    using (Archive archive = new Archive())
    {
        FileInfo fi1 = new FileInfo("image.bmp");
        FileInfo fi2 = new FileInfo("lyrics.txt");
        archive.CreateEntry("data\\pictures\\photo.bmp", fi1);
        archive.CreateEntry("data\\text\\song.txt", fi2);
        archive.Save("archive.zip");
    }

Обзор архива TAR

TAR (Tape ARchive) — популярный формат файлов для архивирования и сжатия отдельных файлов . Это формат без потерь, что означает, что при сжатии данные не теряются. Файлы TAR могут быть созданы в любой операционной системе и поддерживаются широким спектром программного обеспечения.

Расширенные методы сжатия в XAR с сохранением структуры папок

XAR, современный формат архивов, обеспечивает гибкость, позволяя пользователям создавать архивы, сохраняя при этом исходную структуру папок. Этот уникальный подход предназначен для пользователей, которым требуются передовые методы сжатия без ущерба для организации файлов. В архиве Xar использует тот же подход , что и во всех вышеупомянутых форматах.
Пример:

Create archive from directory

    using (FileStream xarFile = File.Open("archive.xar", FileMode.Create))
    {
        using (var archive = new XarArchive())
        {
            archive.CreateEntries(@"C:\folder", false);
            archive.Save(xarFile);
        }
    }

Обзор архива XAR

XAR упрощает процесс добавления файлов без сжатия, предоставляя пользователям гибкость в управлении своими архивами. Используя команды XAR или совместимые программные инструменты, пользователи могут легко интегрировать файлы в архив без использования алгоритмов сжатия. Этот простой метод гарантирует, что исходная структура данных останется нетронутой и будет готова к извлечению при необходимости.

Другие поддерживаемые функции Aspose.ZIP для .NET API

Используйте библиотеку Aspose.ZIP C# для преобразования, объединения, редактирования документов в виде zip-файлов, извлечения данных из архивов и многого другого!

  

Support and Learning Resources

  
  

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