Class GzipArchive

Class GzipArchive

Namespace: Aspose.Zip.Gzip
Assembly: Aspose.Zip.dll (25.1.0)

이 클래스는 gzip 아카이브 파일을 나타냅니다. gzip 아카이브를 구성하거나 추출하는 데 사용합니다.

public class GzipArchive : IArchive, IDisposable, IArchiveFileEntry

상속

objectGzipArchive

구현

IArchive, IDisposable, IArchiveFileEntry

상속된 멤버

object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

비고

Gzip 압축 알고리즘은 LZ77과 허프만 코딩의 조합인 DEFLATE 알고리즘을 기반으로 합니다.

생성자

GzipArchive()

압축을 위해 준비된 Aspose.Zip.Gzip.GzipArchive 클래스의 새 인스턴스를 초기화합니다.

public GzipArchive()

예제

다음 예제는 파일을 압축하는 방법을 보여줍니다.

using (GzipArchive archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

GzipArchive(Stream, bool)

압축 해제를 위해 준비된 Aspose.Zip.Gzip.GzipArchive 클래스의 새 인스턴스를 초기화합니다.

public GzipArchive(Stream sourceStream, bool parseHeader = false)

매개변수

sourceStream Stream

아카이브의 소스입니다.

parseHeader bool

속성(이름 포함)을 파악하기 위해 스트림 헤더를 구문 분석할지 여부입니다. 탐색 가능한 스트림에 대해서만 의미가 있습니다.

예제

스트림에서 아카이브를 열고 MemoryStream으로 추출합니다.

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive(File.OpenRead("archive.gz")))
  archive.Open().CopyTo(ms);

비고

이 생성자는 압축 해제를 수행하지 않습니다. 압축 해제를 위한 Aspose.Zip.Gzip.GzipArchive.Open 메서드를 참조하십시오.

GzipArchive(string, bool)

Aspose.Zip.Gzip.GzipArchive 클래스의 새 인스턴스를 초기화합니다.

public GzipArchive(string path, bool parseHeader = false)

매개변수

path string

아카이브 파일의 경로입니다.

parseHeader bool

속성(이름 포함)을 파악하기 위해 스트림 헤더를 구문 분석할지 여부입니다. 탐색 가능한 스트림에 대해서만 의미가 있습니다.

예제

경로로 파일에서 아카이브를 열고 MemoryStream으로 추출합니다.

var ms = new MemoryStream();
using (GzipArchive archive = new GzipArchive("archive.gz"))
  archive.Open().CopyTo(ms);

비고

이 생성자는 압축 해제를 수행하지 않습니다. 압축 해제를 위한 Aspose.Zip.Gzip.GzipArchive.Open 메서드를 참조하십시오.

예외

ArgumentNullException

path가 null입니다.

SecurityException

호출자가 필요한 권한을 가지고 있지 않습니다.

ArgumentException

path가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함합니다.

UnauthorizedAccessException

path 파일에 대한 접근이 거부되었습니다.

PathTooLongException

지정된 path, 파일 이름, 또는 둘 다 시스템에서 정의된 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하고, 파일 이름은 260자 미만이어야 합니다.

NotSupportedException

path에 문자열 중간에 콜론(:)이 포함되어 있습니다.

속성

Name

원본 파일의 이름입니다.

public string Name { get; }

속성 값

string

메서드

Dispose()

비관리 리소스를 해제, 릴리스 또는 재설정하는 애플리케이션 정의 작업을 수행합니다.

public void Dispose()

Dispose(bool)

비관리 리소스를 해제, 릴리스 또는 재설정하는 애플리케이션 정의 작업을 수행합니다.

protected virtual void Dispose(bool disposing)

매개변수

disposing bool

관리 리소스를 해제해야 하는지 여부입니다.

Extract(Stream)

제공된 스트림으로 아카이브를 추출합니다.

public void Extract(Stream destination)

매개변수

destination Stream

대상 스트림. 쓰기가 가능해야 합니다.

예제

using (var archive = new GzipArchive("archive.gz"))
{
     archive.Extract(httpResponseStream);
}

예외

ArgumentException

destination가 쓰기를 지원하지 않습니다.

InvalidDataException

스트림이 손상되어 유효한 데이터를 포함하지 않습니다.

Extract(string)

경로에 따라 파일로 아카이브를 추출합니다.

public FileInfo Extract(string path)

매개변수

path string

대상 파일의 경로입니다. 파일이 이미 존재하는 경우, 덮어씌워집니다.

반환

FileInfo

추출된 파일의 정보입니다.

예외

ArgumentNullException

path가 null입니다.

SecurityException

호출자가 필요한 권한을 가지고 있지 않습니다.

ArgumentException

path가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함합니다.

UnauthorizedAccessException

path 파일에 대한 접근이 거부되었습니다.

PathTooLongException

지정된 path, 파일 이름, 또는 둘 다 시스템에서 정의된 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하고, 파일 이름은 260자 미만이어야 합니다.

NotSupportedException

path에 문자열 중간에 콜론(:)이 포함되어 있습니다.

InvalidDataException

스트림이 손상되어 유효한 데이터를 포함하지 않습니다.

ExtractToDirectory(string)

아카이브의 내용을 제공된 디렉터리로 추출합니다.

public void ExtractToDirectory(string destinationDirectory)

매개변수

destinationDirectory string

추출된 파일을 배치할 디렉터리의 경로입니다.

비고

디렉터리가 존재하지 않으면 생성됩니다.

예외

ArgumentNullException

destinationDirectory가 null입니다.

PathTooLongException

지정된 경로, 파일 이름, 또는 둘 다 시스템에서 정의된 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하고, 파일 이름은 260자 미만이어야 합니다.

SecurityException

호출자가 기존 디렉터리에 접근할 수 있는 필요한 권한을 가지고 있지 않습니다.

NotSupportedException

디렉터리가 존재하지 않으면 경로에 드라이브 레이블(“C:")의 일부가 아닌 콜론 문자(:)가 포함되어 있습니다.

ArgumentException

destinationDirectory가 길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 유효하지 않은 문자를 포함합니다. 유효하지 않은 문자는 System.IO.Path.GetInvalidPathChars 메서드를 사용하여 쿼리할 수 있습니다. -또는- 경로가 접두사로 붙거나, 콜론 문자(:)만 포함합니다.

IOException

지정된 경로가 파일입니다. -또는- 네트워크 이름이 알려지지 않았습니다.

Open()

추출을 위해 아카이브를 열고 아카이브 내용을 가진 스트림을 제공합니다.

public Stream Open()

반환

Stream

아카이브의 내용을 나타내는 스트림입니다.

예제

아카이브를 추출하고 추출된 내용을 파일 스트림으로 복사합니다.

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);
    }            
}

.NET 4.0 이상에서는 Stream.CopyTo 메서드를 사용할 수 있습니다: `unpacked.CopyTo(extracted);`

비고

스트림에서 읽어 원본 파일의 내용을 가져옵니다. 예제 섹션을 참조하십시오.

Save(Stream)

제공된 스트림에 아카이브를 저장합니다.

public void Save(Stream outputStream)

매개변수

outputStream Stream

대상 스트림입니다.

예제

압축된 데이터를 http 응답 스트림에 씁니다.

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save(httpResponse.OutputStream);
}

비고

outputStream는 쓰기가 가능해야 합니다.

예외

ArgumentException

outputStream는 쓰기가 불가능합니다.

InvalidOperationException

소스가 제공되지 않았습니다.

Save(string)

제공된 대상 파일에 아카이브를 저장합니다.

public void Save(string destinationFileName)

매개변수

destinationFileName string

생성될 아카이브의 경로입니다. 지정된 파일 이름이 기존 파일을 가리키는 경우, 덮어씌워집니다.

예제

using (var archive = new GzipArchive())
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

예외

ArgumentNullException

destinationFileName가 null입니다.

SecurityException

호출자가 필요한 권한을 가지고 있지 않습니다.

ArgumentException

destinationFileName가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함합니다.

UnauthorizedAccessException

destinationFileName 파일에 대한 접근이 거부되었습니다.

PathTooLongException

지정된 destinationFileName, 파일 이름, 또는 둘 다 시스템에서 정의된 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하고, 파일 이름은 260자 미만이어야 합니다.

NotSupportedException

destinationFileName 파일이 문자열 중간에 콜론(:)을 포함합니다.

SetSource(Stream)

아카이브 내에서 압축할 내용을 설정합니다.

public void SetSource(Stream source)

매개변수

source Stream

아카이브의 입력 스트림입니다.

예제

using (var archive = new GzipArchive())
{
    archive.SetSource(new MemoryStream(new byte[] { 0x00, 0xFF }));
    archive.Save("archive.gz");
}

SetSource(FileInfo)

아카이브 내에서 압축할 내용을 설정합니다.

public void SetSource(FileInfo fileInfo)

매개변수

fileInfo FileInfo

압축할 파일에 대한 참조입니다.

예제

using (var archive = new GzipArchive()) 
{
    archive.SetSource(new FileInfo("data.bin"));
    archive.Save("archive.gz");
}

SetSource(string)

아카이브 내에서 압축할 내용을 설정합니다.

public void SetSource(string path)

매개변수

path string

압축할 파일의 경로입니다.

예제

경로로 파일에서 아카이브를 열고 MemoryStream으로 추출합니다.

using (var archive = new GzipArchive()) 
{
    archive.SetSource("data.bin");
    archive.Save("archive.gz");
}

예외

ArgumentNullException

path가 null입니다.

SecurityException

호출자가 필요한 권한을 가지고 있지 않습니다.

ArgumentException

path가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함합니다.

UnauthorizedAccessException

path 파일에 대한 접근이 거부되었습니다.

PathTooLongException

지정된 path, 파일 이름, 또는 둘 다 시스템에서 정의된 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하고, 파일 이름은 260자 미만이어야 합니다.

NotSupportedException

path 파일이 문자열 중간에 콜론(:)을 포함합니다.

SetSource(TarArchive)

아카이브 내에서 압축할 내용을 설정합니다.

public void SetSource(TarArchive tarArchive)

매개변수

tarArchive TarArchive

압축할 tar 아카이브입니다.

예제

using (var tarArchive = new TarArchive())
{
    tarArchive.CreateEntry("first.bin", "data1.bin");
    tarArchive.CreateEntry("second.bin", "data2.bin");
    using (var gzippedArchive = new GzipArchive())
    {
           gzippedArchive.SetSource(tarArchive);
           gzippedArchive.Save("archive.tar.gz");
    }
}

비고

이 방법을 사용하여 joint tar.gz 아카이브를 구성합니다.

 한국어