ZipArchive.CreateAsync 메서드

정의

지정된 모드에서 지정된 스트림의 ZipArchive 새 인스턴스를 비동기적으로 초기화하고 반환하며, 선택적 인코딩 및 선택적 취소 토큰을 사용하여 스트림을 열어 둘지 여부를 지정합니다.

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> CreateAsync(System.IO.Stream stream, System.IO.Compression.ZipArchiveMode mode, bool leaveOpen, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateAsync : System.IO.Stream * System.IO.Compression.ZipArchiveMode * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function CreateAsync (stream As Stream, mode As ZipArchiveMode, leaveOpen As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

매개 변수

stream
Stream

입력 또는 출력 스트림입니다.

mode
ZipArchiveMode

스트림이 읽기, 쓰기 및 검색을 지원하는지 여부를 지정하는 열거형 값 중 하나입니다.

leaveOpen
Boolean

true ZipArchive false를 삭제할 때 스트림을 열어 두려면 .

entryNameEncoding
Encoding

이 ZipArchive에서 항목 이름 및 메모를 읽거나 쓸 때 사용할 인코딩입니다.

cancellationToken
CancellationToken

모니터링할 선택적 취소 토큰입니다.

반품

예외

스트림이 이미 닫혀 있습니다.

-또는-

mode 는 스트림의 기능과 호환되지 않습니다.

스트림이 .입니다 null.

mode 가 잘못된 값을 지정했습니다.

스트림의 내용을 ZIP 파일로 해석할 수 없습니다.

-또는-

mode 는 Update이고 항목이 보관 파일에서 누락되었거나 손상되어 읽을 수 없습니다.

-또는-

mode 가 업데이트이고 항목이 너무 커서 메모리에 맞지 않습니다.

UTF-8 이외의 유니코드 인코딩이 에 대해 entryNameEncoding지정되었습니다.

설명

이외의 null 값을 entryNameEncoding 지정하는 것은 권장되지 않습니다. 그러나 항목 이름에 대해 UTF-8 인코딩을 올바르게 지원하지 않는 ZIP 보관 도구 및 라이브러리와의 상호 운용성을 위해 필요할 수 있습니다.

이 값은 다음과 같이 사용됩니다.

  • ZIP 보관 파일 읽기(열기):
    • 지정되지 않은 경우 entryNameEncoding (== null):
      • 로컬 파일 헤더의 범용 비트 플래그에서 EFS(언어 인코딩 플래그)가 설정 되지 않은 항목의 경우 현재 시스템 기본 코드 페이지(Encoding.Default)를 사용하여 항목 이름과 주석을 디코딩합니다.
      • 로컬 파일 헤더의 범용 비트 플래그에서 EFS(언어 인코딩 플래그)가 설정된 항목의 경우 UTF-8(Encoding.UTF8)을 사용하여 항목 이름과 주석을 디코딩합니다.
    • 지정된 경우 entryNameEncoding (!= null):
      • 로컬 파일 헤더의 범용 비트 플래그에 있는 언어 인코딩 플래그(EFS)가 설정 되지 않은 항목의 경우 지정된 entryNameEncoding 항목을 사용하여 항목 이름과 주석을 디코딩합니다.
      • 로컬 파일 헤더의 범용 비트 플래그에서 EFS(언어 인코딩 플래그)가 설정된 항목의 경우 UTF-8(Encoding.UTF8)을 사용하여 항목 이름과 주석을 디코딩합니다.
  • ZIP 보관 파일 작성(저장):
    • 지정되지 않은 경우 entryNameEncoding (== null):
      • ASCII 범위를 벗어난 문자를 포함하는 항목 이름 및 주석의 경우 EFS(언어 인코딩 플래그)는 로컬 파일 헤더의 범용 비트 플래그에 설정되고 UTF-8(Encoding.UTF8)은 항목 이름과 주석을 바이트로 인코딩하는 데 사용됩니다.
      • ASCII 범위를 벗어나는 문자를 포함하지 않는 항목 이름 및 주석의 경우 EFS(언어 인코딩 플래그)는 로컬 파일 헤더의 범용 비트 플래그에 설정되지 않으며 현재 시스템 기본 코드 페이지(Encoding.Default)는 항목 이름과 주석을 바이트로 인코딩하는 데 사용됩니다.
    • 지정된 경우 entryNameEncoding (!= null):
      • 지정된 entryNameEncoding 항목은 항상 항목 이름과 주석을 바이트로 인코딩하는 데 사용됩니다.
      • 지정된 entryNameEncoding 항목이 UTF-8 인코딩인 경우에만 로컬 파일 헤더의 범용 비트 플래그에 있는 EFS(언어 인코딩 플래그)가 설정됩니다.
  • 적용 대상