Створення GZip на C#

Архіви GZip(.gz) використовуються для стиснення одного або кількох файлів за допомогою алгоритму стиснення GNU zip. Він зазвичай використовується для стиснення файлів в операційних системах UNIX. У цій статті ви дізнаєтесь, як стискати файли за допомогою GZip у C#. Крім того, у статті також буде описано, як розпакувати архіви GZip у C#.

Стиснення файлів за допомогою GZip у C# - встановлення API

Щоб стискати та розпаковувати файли за допомогою GZip, ми будемо використовувати Aspose.ZIP for .NET. Це потужний API, який дозволяє працювати з популярними форматами архівів, зокрема ZIP, 7z, GZip тощо. Ви можете завантажити API або встановити його за допомогою NuGet.

PM> Install-Package Aspose.Zip

Стиснення файлів GZip у C#

Нижче наведено кроки для стиснення файлів за допомогою GZip у C#.

У наведеному нижче прикладі коду показано, як стискати файли до GZip у C#.

using (GzipArchive archive = new GzipArchive())
{
    // встановити джерело
    archive.SetSource("data.bin");
    
    // створити архів
    archive.Save("archive.gz");
}

Розпакуйте GZip у C#

Нижче наведено кроки для розпакування архіву GZip у C#.

  • Створіть об’єкт класу GzipArchive та ініціалізуйте його шляхом до архіву GZip.
  • Створіть файл для видобутого вмісту за допомогою методу File.Create(String).
  • Відкрийте GZip для розпакування за допомогою методу GZipArchive.Open().
  • Прочитайте видобутий вміст і запишіть його у файл.

У наведеному нижче прикладі коду показано, як розпакувати архів GZip у C#.

// завантажити архів GZip
using (var archive = new GzipArchive("archive.gz"))
{
    // створити файл
    using (var extracted = File.Create("data.bin"))
    {
        // відкритий архів
        var unpacked = archive.Open();
        byte[] b = new byte[8192];
        int bytesRead;
        
        // записати в файл
        while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Розпакуйте GZip у Stream на C#

Ви також можете розпакувати архів GZip в об’єкт потоку пам’яті. Нижче наведено кроки для виконання цієї операції.

  • Створіть новий об’єкт MemoryStream.
  • Створіть об’єкт класу GzipArchive та ініціалізуйте його шляхом до архіву GZip.
  • Розпакуйте GZip і скопіюйте в потік пам’яті за допомогою методу GZipArchive.Open().CopyTo(MemoryStream).

У наведеному нижче прикладі коду показано, як розпакувати архів GZip у потік пам’яті за допомогою C#.

// створити потік пам'яті
var ms = new MemoryStream();

// завантажити архів GZip
using (GzipArchive archive = new GzipArchive(File.OpenRead("sample.gz")))
{
    // видобути та скопіювати в потік пам’яті
    archive.Open().CopyTo(ms);
    Console.WriteLine(archive.Name);
}

Стискайте та розпаковуйте файли GZip – отримайте безкоштовну ліцензію

Ви можете отримати безкоштовну тимчасову ліцензію, щоб стискати або розпаковувати архіви GZip без обмежень оцінки.

Висновок

У цій статті ви дізналися, як стискати або розпаковувати файли за допомогою GZip у C#. Крім того, ви бачили, як розпакувати GZip для програмного потоку за допомогою C# .NET. Ви можете дізнатися більше про Aspose.ZIP for .NET за допомогою документації. Крім того, ви можете зв’язатися з нами, щоб поділитися своїми запитами через наш форум.

Дивись також