Archive.Archive

Archive(ArchiveEntrySettings)

의 새 인스턴스를 초기화합니다.Archive 항목에 대한 선택적 설정이 있는 클래스.

public Archive(ArchiveEntrySettings newEntrySettings = null)
모수유형설명
newEntrySettingsArchiveEntrySettings새로 추가된 파일에 사용되는 압축 및 암호화 설정ArchiveEntry items. 지정하지 않으면 암호화 없이 가장 일반적인 Deflate 압축이 사용됩니다.

다음 예제는 기본 설정으로 단일 파일을 압축하는 방법을 보여줍니다.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

또한보십시오


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

의 새 인스턴스를 초기화합니다.Archive 클래스 및 작성 항목 목록은 아카이브에서 추출할 수 있습니다.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
모수유형설명
sourceStreamStream아카이브의 소스입니다.
loadOptionsArchiveLoadOptions기존 아카이브를 로드하는 옵션.
newEntrySettingsArchiveEntrySettings새로 추가된 파일에 사용되는 압축 및 암호화 설정ArchiveEntry items. 지정하지 않으면 암호화 없이 가장 일반적인 Deflate 압축이 사용됩니다.

예외

예외상태
ArgumentExceptionsourceStream 찾을 수 없습니다.
InvalidDataExceptionAES의 암호화 헤더는 WinZip 압축 방법과 모순됩니다.

비고

이 생성자는 항목의 압축을 풀지 않습니다. 보다Open 압축 해제 방법.

다음 예는 암호화된 아카이브를 추출한 다음 첫 번째 항목을메모리 스트림.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

또한보십시오


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

의 새 인스턴스를 초기화합니다.Archive 클래스 및 작성 항목 목록은 아카이브에서 추출할 수 있습니다.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
모수유형설명
pathString아카이브 파일의 정규화된 경로 또는 상대 경로입니다.
loadOptionsArchiveLoadOptions기존 아카이브를 로드하는 옵션.
newEntrySettingsArchiveEntrySettings새로 추가된 파일에 사용되는 압축 및 암호화 설정ArchiveEntry items. 지정하지 않으면 암호화 없이 가장 일반적인 Deflate 압축이 사용됩니다.

예외

예외상태
ArgumentNullExceptionpath null입니다.
SecurityException호출자에게 액세스에 필요한 권한이 없습니다.
ArgumentException그만큼path 비어 있거나 공백만 포함하거나 잘못된 문자를 포함합니다.
UnauthorizedAccessException파일에 대한 액세스path 거부되었습니다.
PathTooLongException지정된path, 파일 이름 또는 둘 다 시스템 정의 최대 길이를 초과합니다. 예를 들어 Windows 기반 플랫폼에서 경로는 248자 미만이어야 하고 파일 이름은 260자 미만이어야 합니다.
NotSupportedException파일 위치path 문자열 중간에 콜론(:)을 포함합니다.

비고

이 생성자는 항목의 압축을 풀지 않습니다. 보다Open 압축 해제 방법.

다음 예는 암호화된 아카이브를 추출한 다음 첫 번째 항목을메모리 스트림.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

또한보십시오