ZipFile.OpenAsync 메서드

정의

오버로드

Name Description
OpenAsync(String, ZipArchiveMode, CancellationToken)

지정된 ZipArchiveMode 모드에서 지정된 archiveFileName 값을 비동기적으로 엽니다ZipArchive.

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

지정된 ZipArchiveMode 모드에서 지정된 archiveFileName 값을 비동기적으로 엽니다ZipArchive.

OpenAsync(String, ZipArchiveMode, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

지정된 ZipArchiveMode 모드에서 지정된 archiveFileName 값을 비동기적으로 엽니다ZipArchive.

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> OpenAsync(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Threading.CancellationToken cancellationToken = default);
static member OpenAsync : string * System.IO.Compression.ZipArchiveMode * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function OpenAsync (archiveFileName As String, mode As ZipArchiveMode, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

매개 변수

archiveFileName
String

보관 파일을 열 파일 시스템의 경로입니다.

mode
ZipArchiveMode

열린 보관 파일의 항목에 허용되는 작업을 지정하는 열거형 값 중 하나입니다.

cancellationToken
CancellationToken

취소 요청을 모니터링할 취소 토큰입니다.

반품

예외

archiveFileName 는 길이가 0인 문자열이거나, 공백만 포함하거나, InvalidPathChars에 정의된 하나 이상의 잘못된 문자를 포함합니다.

archiveFileNamenull입니다.

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

지정한 값이 잘못되었습니다 archiveFileName (예: 매핑되지 않은 드라이브에 있는 경우).

파일을 여는 동안 지정되지 않은 I/O 오류가 발생했습니다.

archiveFileName 디렉터리를 지정했습니다.

-또는-

호출자에게 필요한 권한이 없습니다.

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

지정한 archiveFileName 파일을 찾을 수 없습니다.

archiveFileName 가 잘못된 형식입니다.

지정된 파일을 zip 파일로 해석할 수 없습니다.

-또는-

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

-또는-

modeUpdate 있고 항목이 너무 커서 메모리에 맞지 않습니다.

비동기 작업이 취소됩니다.

설명

archiveFileName의 경우:

경로는 상대 또는 절대 경로 정보를 지정할 수 있습니다. 상대 경로 정보는 현재 작업 디렉터리를 기준으로 해석됩니다.

mode의 경우:

지정된 경우 Read 파일은 로 System.IO.FileMode.Open열리고 파일이 없으면 throw FileNotFoundException 됩니다.

지정된 경우 Create 파일이 로 System.IO.FileMode.CreateNew열리고 파일이 이미 있는 경우 throw System.IO.IOException 됩니다.

지정한 경우 Update 파일이 .으로 System.IO.FileMode.OpenOrCreate열립니다.

파일이 있고 zip 파일인 경우 해당 항목에 액세스할 수 있고 수정할 수 있으며 새 항목을 만들 수 있습니다.

파일이 있고 zip 파일이 아니면 throw InvalidDataException 됩니다.

파일이 존재하고 비어 있거나 존재하지 않는 경우 새 zip 파일이 만들어집니다.

새 zip 파일을 만들 때 모드로 Create zip 파일을 만드는 것이 더 효율적입니다.

적용 대상

OpenAsync(String, ZipArchiveMode, Encoding, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

지정된 ZipArchiveMode 모드에서 지정된 archiveFileName 값을 비동기적으로 엽니다ZipArchive.

public static System.Threading.Tasks.Task<System.IO.Compression.ZipArchive> OpenAsync(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member OpenAsync : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task<System.IO.Compression.ZipArchive>
Public Shared Function OpenAsync (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ZipArchive)

매개 변수

archiveFileName
String

보관 파일을 열 파일 시스템의 경로입니다.

mode
ZipArchiveMode

열린 보관 파일의 항목에 허용되는 작업을 지정하는 열거형 값 중 하나입니다.

entryNameEncoding
Encoding

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

cancellationToken
CancellationToken

취소 요청을 모니터링할 취소 토큰입니다.

반품

예외

archiveFileName 는 길이가 0인 문자열이거나, 공백만 포함하거나, InvalidPathChars에 정의된 하나 이상의 잘못된 문자를 포함합니다.

archiveFileNamenull입니다.

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

archiveFileName 가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있는 경우).

파일을 여는 동안 지정되지 않은 I/O 오류가 발생했습니다.

archiveFileName 디렉터리를 지정했습니다.

-또는-

호출자에게 필요한 권한이 없습니다.

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

지정한 archiveFileName 파일을 찾을 수 없습니다.

archiveFileName 가 잘못된 형식입니다.

지정된 파일을 zip 파일로 해석할 수 없습니다.

-또는-

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

-또는-

modeUpdate 있고 항목이 너무 커서 메모리에 맞지 않습니다.

비동기 작업이 취소됩니다.

설명

archiveFileName의 경우:

경로는 상대 또는 절대 경로 정보를 지정할 수 있습니다. 상대 경로 정보는 현재 작업 디렉터리를 기준으로 해석됩니다.

mode의 경우:

지정된 경우 Read 파일은 로 System.IO.FileMode.Open열리고 파일이 없으면 throw FileNotFoundException 됩니다.

지정된 경우 Create 파일이 로 System.IO.FileMode.CreateNew열리고 파일이 이미 있는 경우 throw System.IO.IOException 됩니다.

지정한 경우 Update 파일이 .으로 System.IO.FileMode.OpenOrCreate열립니다.

파일이 있고 zip 파일인 경우 해당 항목에 액세스할 수 있고 수정할 수 있으며 새 항목을 만들 수 있습니다.

파일이 있고 zip 파일이 아니면 throw InvalidDataException 됩니다.

파일이 존재하고 비어 있거나 존재하지 않는 경우 새 zip 파일이 만들어집니다.

새 zip 파일을 만들 때 모드로 Create zip 파일을 만드는 것이 더 효율적입니다.

값 이외의 값을 nullentryNameEncoding 지정하는 것은 권장되지 않습니다. 그러나 항목 이름 또는 주석에 대해 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(언어 인코딩 플래그)가 설정됩니다.
  • UTF-8 이외의 유니코드 인코딩은 사용할 entryNameEncoding수 없으며, 그렇지 않으면 ArgumentException throw됩니다.

    적용 대상