GZip 아카이브 작업

개요

.NET API용 Aspose.ZIP을 사용하면 다른 타사 애플리케이션 없이도 애플리케이션에서 GZip 아카이브를 생성하고 관리할 수 있습니다. Aspose.ZIP API는 GZip 아카이브 작업을 위한 GZipArchive 클래스를 제공합니다. 이 클래스는 아카이브에 대한 작업을 수행하는 다양한 방법을 제공합니다.

Gzip 압축 알고리즘은 LZ77과 Huffman 코딩을 결합한 DEFLATE 알고리즘을 기반으로 합니다.

파일 압축

다음 코드 예제에서는 GZipArchive 인스턴스를 사용하여 파일을 압축하는 방법을 보여줍니다.

1    using (GzipArchive archive = new GzipArchive())
2    {
3        archive.SetSource(dataDir + "data.bin");
4        archive.Save(dataDir + "archive.gz");
5    }

GZIP 아카이브 열기

다음 코드 예제는 GZip 아카이브를 여는 방법을 보여줍니다.

 1    //Extracts the archive and copies extracted content to file stream.
 2    using (var archive = new GzipArchive(dataDir + "archive.gz"))
 3    {
 4        using (var extracted = File.Create(dataDir + "data.bin"))
 5        {
 6            var unpacked = archive.Open();
 7            byte[] b = new byte[8192];
 8            int bytesRead;
 9            while (0 < (bytesRead = unpacked.Read(b, 0, b.Length)))
10                extracted.Write(b, 0, bytesRead);
11        }
12    }

메모리 스트림으로 추출

다음 코드 예제는 스트림에서 아카이브를 열고 이를 MemoryStream으로 추출하는 방법을 보여줍니다.

1    //Open an archive from a stream and extract it to a MemoryStream
2    var ms = new MemoryStream();
3    using (GzipArchive archive = new GzipArchive(File.OpenRead(dataDir + "sample.gz")))
4    {
5        archive.Open().CopyTo(ms);
6        Console.WriteLine(archive.Name);
7    }

스트림에 저장

다음 코드 예제에서는 Stream을 열고 저장하는 방법을 보여줍니다.

1    //Writes compressed data to http response stream.
2    var ms = new MemoryStream();
3    using (var archive = new GzipArchive())
4    {
5        archive.SetSource(new FileInfo(dataDir + "data.bin"));
6        archive.Save(ms);
7    }

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.