Class Bzip2Archive
Namespace: Aspose.Zip.Bzip2
Assembly: Aspose.Zip.dll (25.1.0)
이 클래스는 bzip2 아카이브 파일을 나타냅니다. bzip2 아카이브를 구성하거나 추출하는 데 사용합니다.
public class Bzip2Archive : IArchive, IDisposable, IArchiveFileEntry
상속
구현
IArchive, IDisposable, IArchiveFileEntry
상속된 멤버
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
비고
bzip2는 Burrows-Wheeler 블록 정렬 텍스트 압축 알고리즘과 허프만 코딩을 사용하여 파일을 압축합니다. 자세한 내용은 다음을 참조하세요: https://en.wikipedia.org/wiki/Bzip2
생성자
Bzip2Archive()
압축을 위해 준비된 Aspose.Zip.Bzip2.Bzip2Archive 클래스의 새 인스턴스를 초기화합니다.
public Bzip2Archive()
예제
다음 예제는 파일을 압축하는 방법을 보여줍니다.
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource("data.bin");
archive.Save("archive.bz2");
}
Bzip2Archive(Stream, Bzip2LoadOptions)
압축 해제를 위해 준비된 Aspose.Zip.Bzip2.Bzip2Archive 클래스의 새 인스턴스를 초기화합니다.
public Bzip2Archive(Stream sourceStream, Bzip2LoadOptions loadOptions = null)
매개변수
sourceStream
Stream
아카이브의 소스입니다.
loadOptions
Bzip2LoadOptions
아카이브를 로드할 옵션입니다.
예제
스트림에서 아카이브를 열고 MemoryStream
으로 추출합니다.
var ms = new MemoryStream();
using (Bzip2Archive archive = new Bzip2Archive(File.OpenRead("archive.bz2")))
archive.Open().CopyTo(ms);
비고
이 생성자는 압축 해제를 수행하지 않습니다. 압축 해제를 위한 Aspose.Zip.Bzip2.Bzip2Archive.Open 메서드를 참조하세요.
Bzip2Archive(string, Bzip2LoadOptions)
압축 해제를 위해 준비된 Aspose.Zip.Bzip2.Bzip2Archive 클래스의 새 인스턴스를 초기화합니다.
public Bzip2Archive(string path, Bzip2LoadOptions loadOptions = null)
매개변수
path
string
아카이브 파일의 경로입니다.
loadOptions
Bzip2LoadOptions
아카이브를 로드할 옵션입니다.
예제
경로를 통해 파일에서 아카이브를 열고 MemoryStream
으로 추출합니다.
var ms = new MemoryStream();
using (Bzip2Archive archive = new Bzip2Archive("archive.bz2"))
archive.Open().CopyTo(ms);
비고
이 생성자는 압축 해제를 수행하지 않습니다. 압축 해제를 위한 Aspose.Zip.Bzip2.Bzip2Archive.Open 메서드를 참조하세요.
예외
path
가 null입니다.
호출자가 필요한 권한을 가지고 있지 않습니다.
path
가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함하고 있습니다.
path
에 대한 파일 접근이 거부되었습니다.
지정된 path
, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하며, 파일 이름은 260자 미만이어야 합니다.
path
에 문자열 중간에 콜론(:)이 포함되어 있습니다.
파일을 찾을 수 없습니다.
지정된 경로가 유효하지 않습니다. 예를 들어, 매핑되지 않은 드라이브에 있을 수 있습니다.
파일이 이미 열려 있습니다.
메서드
Dispose()
비관리 리소스를 해제, 릴리스 또는 초기화하는 애플리케이션 정의 작업을 수행합니다.
public void Dispose()
Dispose(bool)
비관리 리소스를 해제, 릴리스 또는 초기화하는 애플리케이션 정의 작업을 수행합니다.
protected virtual void Dispose(bool disposing)
매개변수
disposing
bool
관리 리소스를 해제해야 하는지 여부입니다.
Extract(Stream)
제공된 스트림으로 아카이브를 추출합니다.
public void Extract(Stream destination)
매개변수
destination
Stream
대상 스트림. 쓰기 가능해야 합니다.
예제
using (Bzip2Archive archive = new Bzip2Archive("archive.bz2"))
{
archive.Extract(httpResponseStream);
}
예외
destination
는 쓰기를 지원하지 않습니다.
Extract(string)
경로로 파일에 아카이브를 추출합니다.
public FileInfo Extract(string path)
매개변수
path
string
대상 파일의 경로입니다. 파일이 이미 존재하는 경우 덮어씌워집니다.
반환
추출된 파일의 정보입니다.
예외
path
가 null입니다.
호출자가 필요한 권한을 가지고 있지 않습니다.
path
가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함하고 있습니다.
path
에 대한 파일 접근이 거부되었습니다.
지정된 path
, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하며, 파일 이름은 260자 미만이어야 합니다.
path
에 문자열 중간에 콜론(:)이 포함되어 있습니다.
파일을 찾을 수 없습니다.
지정된 경로가 유효하지 않습니다. 예를 들어, 매핑되지 않은 드라이브에 있을 수 있습니다.
파일이 이미 열려 있습니다.
ExtractToDirectory(string)
아카이브의 내용을 제공된 디렉터리에 추출합니다.
public void ExtractToDirectory(string destinationDirectory)
매개변수
destinationDirectory
string
추출된 파일을 배치할 디렉터리의 경로입니다.
비고
디렉터리가 존재하지 않으면 생성됩니다.
예외
destinationDirectory
가 null입니다.
지정된 경로, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하며, 파일 이름은 260자 미만이어야 합니다.
호출자가 기존 디렉터리에 접근하기 위한 필요한 권한을 가지고 있지 않습니다.
디렉터리가 존재하지 않는 경우, 경로에 드라이브 레이블(“C:")의 일부가 아닌 콜론(:) 문자가 포함되어 있습니다.
destinationDirectory
가 길이가 0인 문자열이거나, 공백만 포함하거나, 하나 이상의 유효하지 않은 문자를 포함하고 있습니다. 유효하지 않은 문자는 System.IO.Path.GetInvalidPathChars 메서드를 사용하여 조회할 수 있습니다.
- 또는 - 경로가 콜론 문자(:)로만 접두사되거나 포함되어 있습니다.
지정된 경로가 파일입니다. - 또는 - 네트워크 이름을 알 수 없습니다.
Open()
추출을 위해 아카이브를 열고 아카이브 내용을 제공하는 스트림을 제공합니다.
public Stream Open()
반환
아카이브의 내용을 나타내는 스트림입니다.
예제
사용법:
Stream decompressed = archive.Open();
.NET 4.0 및 이후 버전 - Stream.CopyTo 메서드를 사용하세요:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 및 이전 버전 - 바이트를 수동으로 복사합니다:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### 비고
스트림에서 읽어 원래 파일의 내용을 가져옵니다. 예제 섹션을 참조하세요.
### <a id="Aspose_Zip_Bzip2_Bzip2Archive_Save_System_IO_Stream_Aspose_Zip_Bzip2_Bzip2SaveOptions_"></a> Save\(Stream, Bzip2SaveOptions\)
제공된 스트림으로 아카이브를 저장합니다.
```csharp
public void Save(Stream outputStream, Bzip2SaveOptions saveOptions = null)
매개변수
outputStream
Stream
대상 스트림입니다.
saveOptions
Bzip2SaveOptions
bzip2 아카이브를 저장하기 위한 옵션입니다. 지정하지 않으면 900 Kb 블록 크기가 사용됩니다.
예제
압축된 데이터를 http 응답 스트림에 씁니다.
using (var archive = new Bzip2Archive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save(httpResponse.OutputStream);
}
비고
outputStream
는 쓰기 가능해야 합니다.
예외
아카이브할 데이터의 소스가 제공되지 않았습니다.
outputStream
는 쓰기 가능하지 않습니다.
파일 소스가 읽기 전용이거나 디렉터리입니다.
지정된 파일 소스 경로가 유효하지 않습니다. 예를 들어, 매핑되지 않은 드라이브에 있을 수 있습니다.
파일 소스가 이미 열려 있습니다.
Save(string, Bzip2SaveOptions)
제공된 대상 파일에 아카이브를 저장합니다.
public void Save(string destinationFileName, Bzip2SaveOptions saveOptions = null)
매개변수
destinationFileName
string
생성될 아카이브의 경로입니다. 지정된 파일 이름이 기존 파일을 가리키는 경우 덮어씌워집니다.
saveOptions
Bzip2SaveOptions
bzip2 아카이브를 저장하기 위한 옵션입니다. 지정하지 않으면 900 Kb 블록 크기가 사용됩니다.
예제
압축된 데이터를 파일에 씁니다.
using (var archive = new Bzip2Archive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("data.bz2");
}
예외
destinationFileName
가 null입니다.
호출자가 필요한 권한을 가지고 있지 않습니다.
destinationFileName
가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함하고 있습니다.
destinationFileName
에 대한 파일 접근이 거부되었습니다.
지정된 destinationFileName
, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하며, 파일 이름은 260자 미만이어야 합니다.
destinationFileName
에 문자열 중간에 콜론(:)이 포함되어 있습니다.
SetSource(Stream)
아카이브 내에서 압축할 내용을 설정합니다.
public void SetSource(Stream source)
매개변수
source
Stream
아카이브의 입력 스트림입니다.
예제
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource(new MemoryStream(new byte[] { 0x00,0xFF }));
archive.Save("archive.bz2");
}
SetSource(FileInfo)
아카이브 내에서 압축할 내용을 설정합니다.
public void SetSource(FileInfo fileInfo)
매개변수
fileInfo
FileInfo
압축할 파일에 대한 참조입니다.
예제
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource(new FileInfo("data.bin"));
archive.Save("archive.bz2");
}
SetSource(string)
아카이브 내에서 압축할 내용을 설정합니다.
public void SetSource(string path)
매개변수
path
string
압축할 파일의 경로입니다.
예제
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource("data.bin");
archive.Save("archive.bz2");
}
예외
path
가 null입니다.
호출자가 필요한 권한을 가지고 있지 않습니다.
path
가 비어 있거나, 공백만 포함하거나, 유효하지 않은 문자를 포함하고 있습니다.
path
에 대한 파일 접근이 거부되었습니다.
지정된 path
, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어, Windows 기반 플랫폼에서는 경로가 248자 미만이어야 하며, 파일 이름은 260자 미만이어야 합니다.
path
에 문자열 중간에 콜론(:)이 포함되어 있습니다.
SetSource(TarArchive, TarFormat)
아카이브 내에서 압축할 내용을 설정합니다.
public void SetSource(TarArchive tarArchive, TarFormat format = TarFormat.UsTar)
매개변수
tarArchive
TarArchive
압축할 tar 아카이브입니다.
format
TarFormat
tar 헤더 형식을 정의합니다.
예제
using (var tarArchive = new TarArchive())
{
tarArchive.CreateEntry("first.bin", "data1.bin");
tarArchive.CreateEntry("second.bin", "data2.bin");
using (var bzippedArchive = new Bzip2Archive())
{
bzippedArchive.SetSource(tarArchive);
bzippedArchive.Save("archive.tar.bz2");
}
}
비고
이 메서드를 사용하여 결합된 tar.bz2 아카이브를 구성합니다.
SetSource(CpioArchive, CpioFormat)
아카이브 내에서 압축할 내용을 설정합니다.
public void SetSource(CpioArchive cpioArchive, CpioFormat format = CpioFormat.OldAscii)
매개변수
cpioArchive
CpioArchive
압축할 Cpio 아카이브입니다.
format
CpioFormat
cpio 헤더 형식을 정의합니다.
예제
using (var cpioArchive = new CpioArchive())
{
cpioArchive.CreateEntry("first.bin", "data1.bin");
cpioArchive.CreateEntry("second.bin", "data2.bin");
using (var bzippedArchive = new Bzip2Archive())
{
bzippedArchive.SetSource(cpioArchive);
bzippedArchive.Save("archive.cpio.bz2");
}
}
비고
이 메서드를 사용하여 결합된 cpio.bz2 아카이브를 구성합니다.