ZipFile.ExtractToDirectory 메서드

정의

지정된 ZIP 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

오버로드

ExtractToDirectory(String, String, Encoding, Boolean)

지정된 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

ExtractToDirectory(Stream, String, Encoding, Boolean)

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하여 파일 시스템의 지정된 대상 디렉터리에 배치하고, 항목 이름에 지정된 문자 인코딩을 사용하며, 필요에 따라 대상 디렉터리의 파일을 덮어쓸지 선택할 수 있습니다.

ExtractToDirectory(String, String, Encoding)

지정된 zip 보관 저장소의 모든 파일을 파일 시스템의 디렉터리에 추출하고 항목 이름에 대한 지정된 문자 인코딩을 사용합니다.

ExtractToDirectory(String, String, Boolean)

지정된 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

ExtractToDirectory(Stream, String, Boolean)

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하여 파일 시스템의 지정된 대상 디렉터리에 배치하고 필요에 따라 대상 디렉터리의 파일을 덮어쓸지 선택할 수 있습니다.

ExtractToDirectory(String, String)

지정된 ZIP 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

ExtractToDirectory(Stream, String)

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하고 파일 시스템의 지정된 대상 디렉터리에 배치합니다.

ExtractToDirectory(Stream, String, Encoding)

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하여 파일 시스템의 지정된 대상 디렉터리에 배치하고 항목 이름에 지정된 문자 인코딩을 사용합니다.

ExtractToDirectory(String, String, Encoding, Boolean)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

매개 변수

sourceArchiveFileName
String

파일 시스템에서 추출할 보관 파일의 경로입니다.

destinationDirectoryName
String

파일 시스템에 있는 대상 디렉터리의 경로입니다.

entryNameEncoding
Encoding

ZipArchive에서 항목 이름을 읽을 때 사용하는 인코딩입니다.

overwriteFiles
Boolean

파일을 덮어쓰려면 true로 설정하고, 그렇지 않으면 false로 설정합니다.

예외

sourceArchiveFileName 또는 destinationDirectoryName이 빈 문자열이거나 공백만 포함하거나 InvalidPathChars로 정의된 하나 이상의 잘못된 문자를 포함합니다.

또는

entryNameEncoding이 UTF-8이 아닌 유니코드 인코딩으로 설정된 경우

sourceArchiveFileName 또는 destinationDirectoryNamenull인 경우

sourceArchiveFileName 또는 destinationDirectoryName에서 시스템 정의 최대 길이를 초과하는 경로, 파일 이름, 또는 둘 다를 지정합니다.

sourceArchiveFileName 또는 destinationDirectoryName을 통해 지정한 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

overwriteFilesfalse 이고 추출할 보관 항목의 이름이 에 destinationDirectoryName이미 있는 파일과 같습니다.

또는

I/O 오류가 발생했습니다.

또는

ZipArchiveEntry의 이름이 길이가 0이거나 공백만 포함하거나 InvalidPathChars로 정의된 하나 이상의 잘못된 문자를 포함합니다.

또는

ZipArchiveEntry를 추출하면 파일 대상이 대상 디렉터리 외부에 생깁니다(예: 상위 디렉터리 접근자 때문).

또는

ZipArchiveEntry의 이름이 동일한 보관 파일에서 이미 추출된 항목의 이름과 같습니다.

호출자에게 필요한 권한이 없는 경우

sourceArchiveFileName 또는 destinationDirectoryName의 형식이 잘못되었습니다.

sourceArchiveFileName을 찾을 수 없습니다.

sourceArchiveFileName을 통해 지정한 보관 파일이 올바른 ZipArchive가 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법을 사용하여 압축되었습니다.

설명

보관 파일을 추출하는 동안 오류가 발생하면 보관 파일은 부분적으로 추출된 상태로 유지됩니다.

추출된 파일이 항목이 보관 파일에 있는 것과 동일한 상대 경로를 destinationDirectoryName 되도록 각 항목이 추출됩니다.

destinationDirectoryName 매개 변수는 sourceArchiveFileName 상대 경로와 절대 경로를 모두 허용합니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.

적용 대상

ExtractToDirectory(Stream, String, Encoding, Boolean)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하여 파일 시스템의 지정된 대상 디렉터리에 배치하고, 항목 이름에 지정된 문자 인코딩을 사용하며, 필요에 따라 대상 디렉터리의 파일을 덮어쓸지 선택할 수 있습니다.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

매개 변수

source
Stream

zip 보관 파일을 추출할 스트림입니다.

destinationDirectoryName
String

추출된 파일을 배치할 디렉터리의 경로이며 상대 경로 또는 절대 경로로 지정됩니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

entryNameEncoding
Encoding

이 아카이브에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다. 인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다.

overwriteFiles
Boolean

파일을 덮어쓰려면 true로 설정하고, 그렇지 않으면 false로 설정합니다.

예외

destinationDirectoryName> 가 이거나 Empty, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.

또는

entryNameEncoding이 UTF-8이 아닌 유니코드 인코딩으로 설정된 경우

destinationDirectoryName 또는 sourcenull인 경우

destinationDirectoryName 지정된 경로가 시스템 정의 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

보관 파일에 있는 항목의 이름이 Empty 상태이며, 이 이름에 공백만 있거나 잘못된 문자가 하나 이상 포함되어 있습니다.

또는

보관 항목을 추출하면 destinationDirectoryName으로 지정된 디렉터리 외부에 파일이 만들어집니다. (예를 들어 항목 이름에 부모 디렉터리 접근자가 포함된 경우 발생할 수 있습니다.)

또는

overwriteFilesfalse 이고 추출할 보관 항목의 이름이 이미 추출되었거나 에 destinationDirectoryName있는 항목과 같습니다.

호출자에게 보관 위치 또는 대상 디렉터리에 액세스할 수 있는 권한이 없는 경우

destinationDirectoryName에 잘못된 형식이 포함되어 있는 경우

스트림에 포함된 보관 파일이 source 유효한 zip 보관 파일이 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법으로 압축되었습니다.

설명

이 메서드는 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다. 대상 디렉터리가 아직 없습니다. 매개 변수에 포함된 source zip 보관 파일 또는 의 경로 destinationDirectoryName 유효성 검사와 관련된 예외는 추출 전에 throw됩니다. 그렇지 않으면 추출하는 동안 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일은 원본 항목이 보관의 루트에 있는 것과 에서 지정한 destinationDirectoryName 디렉터리에 대한 상대 경로가 동일합니다. 보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.

적용 대상

ExtractToDirectory(String, String, Encoding)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 zip 보관 저장소의 모든 파일을 파일 시스템의 디렉터리에 추출하고 항목 이름에 대한 지정된 문자 인코딩을 사용합니다.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

매개 변수

sourceArchiveFileName
String

추출되는 보관 위치의 경로입니다.

destinationDirectoryName
String

추출된 파일을 배치할 디렉터리의 경로이며 상대 경로 또는 절대 경로로 지정됩니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

entryNameEncoding
Encoding

이 아카이브에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다. 인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다.

예외

destinationDirectoryName 또는 sourceArchiveFileName은 공백만 있는 Empty이거나 잘못된 문자가 하나 이상 있는 경우입니다.

또는

entryNameEncoding이 UTF-8이 아닌 유니코드 인코딩으로 설정된 경우

destinationDirectoryName 또는 sourceArchiveFileNamenull인 경우

destinationDirectoryName 또는 sourceArchiveFileName의 지정된 경로가 시스템 정의 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

보관 파일에 있는 항목의 이름이 Empty 상태이며, 이 이름에 공백만 있거나 잘못된 문자가 하나 이상 포함되어 있습니다.

또는

보관 항목을 추출하면 destinationDirectoryName으로 지정된 디렉터리 외부에 파일이 만들어집니다. (예를 들어 항목 이름에 부모 디렉터리 접근자가 포함된 경우 발생할 수 있습니다.)

또는

추출할 보관 항목의 이름은 이미 추출되었거나 에 destinationDirectoryName있는 항목과 같습니다.

호출자에게 보관 위치 또는 대상 디렉터리에 액세스할 수 있는 권한이 없는 경우

destinationDirectoryName 또는 sourceArchiveFileName에 잘못된 형식이 포함되어 있는 경우

sourceArchiveFileName을 찾을 수 없습니다.

sourceArchiveFileName으로 지정된 보관 위치가 올바른 zip 보관 위치가 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법으로 압축되었습니다.

설명

이 메서드는 필요한 경우 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다. 또는 sourceArchiveFileName 매개 변수의 경로 유효성 검사와 destinationDirectoryName 관련된 예외는 추출 전에 throw됩니다. 그렇지 않으면 추출 중에 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일의 원본 항목이 보관의 루트에 있는 것처럼 에 destinationDirectoryName 지정된 디렉터리에 대한 상대 경로가 동일합니다.

가 이외의 null값으로 설정된 경우 entryNameEncoding 항목 이름은 다음 규칙에 따라 디코딩됩니다.

  • 언어 인코딩 플래그(로컬 파일 헤더의 범용 비트 플래그)가 설정되지 않은 항목 이름의 경우 지정된 인코딩을 사용하여 항목 이름이 디코딩됩니다.
  • 언어 인코딩 플래그가 설정된 항목의 경우 항목 이름은 UTF-8을 사용하여 디코딩됩니다.

가 로 null설정된 경우 entryNameEncoding 항목 이름은 다음 규칙에 따라 디코딩됩니다.

  • 언어 인코딩 플래그(로컬 파일 헤더의 범용 비트 플래그)가 설정되지 않은 항목의 경우 현재 시스템 기본 코드 페이지를 사용하여 항목 이름이 디코딩됩니다.
  • 언어 인코딩 플래그가 설정된 항목의 경우 항목 이름은 UTF-8을 사용하여 디코딩됩니다.

적용 대상

ExtractToDirectory(String, String, Boolean)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

매개 변수

sourceArchiveFileName
String

파일 시스템에서 추출할 보관 파일의 경로입니다.

destinationDirectoryName
String

파일 시스템에 있는 대상 디렉터리의 경로입니다.

overwriteFiles
Boolean

파일을 덮어쓰려면 true로 설정하고, 그렇지 않으면 false로 설정합니다.

예외

sourceArchiveFileName 또는 destinationDirectoryName이 빈 문자열이거나 공백만 포함하거나 InvalidPathChars로 정의된 하나 이상의 잘못된 문자를 포함합니다.

sourceArchiveFileName 또는 destinationDirectoryNamenull인 경우

sourceArchiveFileName 또는 destinationDirectoryName에서 시스템 정의 최대 길이를 초과하는 경로, 파일 이름, 또는 둘 다를 지정합니다.

sourceArchiveFileName 또는 destinationDirectoryName을 통해 지정한 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

overwriteFilesfalse 이미 추출 중인 파일과 destinationDirectoryName 이름이 같은 파일을 포함하고 있습니다.

또는

I/O 오류가 발생했습니다.

또는

ZipArchiveEntry의 이름이 길이가 0이거나 공백만 포함하거나 InvalidPathChars로 정의된 하나 이상의 잘못된 문자를 포함합니다.

또는

ZipArchiveEntry를 추출하면 파일 대상이 대상 디렉터리 외부에 생깁니다(예: 상위 디렉터리 접근자 때문).

또는

ZipArchiveEntry 은 이미 추출된 동일한 보관 파일의 항목과 이름이 같습니다.

호출자에게 필요한 권한이 없는 경우

sourceArchiveFileName 또는 destinationDirectoryName의 형식이 잘못되었습니다.

sourceArchiveFileName을 찾을 수 없습니다.

sourceArchiveFileName을 통해 지정한 보관 파일이 올바른 ZipArchive가 아닙니다.

또는

ZipArchiveEntry를 찾을 수 없거나 손상되었습니다.

또는

지원되지 않는 압축된 메서드를 사용하여 ZipArchiveEntry가 압축되었습니다.

설명

보관 파일을 추출하는 동안 오류가 발생하면 보관 파일은 부분적으로 추출된 상태로 유지됩니다.

추출된 파일의 상대 경로가 보관 파일에 대한 항목과 같도록 destinationDirectoryName 각 항목이 추출됩니다.

destinationDirectoryName 매개 변수는 sourceArchiveFileName 상대 경로와 절대 경로를 모두 허용합니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.

적용 대상

ExtractToDirectory(Stream, String, Boolean)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하여 파일 시스템의 지정된 대상 디렉터리에 배치하고 필요에 따라 대상 디렉터리의 파일을 덮어쓸지 선택할 수 있습니다.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean)

매개 변수

source
Stream

zip 보관 파일을 추출할 스트림입니다.

destinationDirectoryName
String

추출된 파일을 배치할 디렉터리의 경로이며 상대 경로 또는 절대 경로로 지정됩니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

overwriteFiles
Boolean

파일을 덮어쓰려면 true로 설정하고, 그렇지 않으면 false로 설정합니다.

예외

destinationDirectoryName> 가 이거나 Empty, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.

destinationDirectoryName 또는 sourcenull인 경우

destinationDirectoryName 지정된 경로가 시스템 정의 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

보관 파일에 있는 항목의 이름이 Empty 상태이며, 이 이름에 공백만 있거나 잘못된 문자가 하나 이상 포함되어 있습니다.

또는

보관 항목을 추출하면 destinationDirectoryName으로 지정된 디렉터리 외부에 파일이 만들어집니다. (예를 들어 항목 이름에 부모 디렉터리 접근자가 포함된 경우 발생할 수 있습니다.)

또는

overwriteFilesfalse 이고 추출할 보관 항목의 이름이 이미 추출되었거나 에 destinationDirectoryName있는 항목과 같습니다.

호출자에게 보관 위치 또는 대상 디렉터리에 액세스할 수 있는 권한이 없는 경우

destinationDirectoryName에 잘못된 형식이 포함되어 있는 경우

스트림에 source 포함된 보관 파일이 유효한 zip 보관 파일이 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법으로 압축되었습니다.

설명

이 메서드는 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다. 대상 디렉터리가 아직 존재하지 않습니다. 매개 변수에 포함된 source zip 보관 파일 또는 의 경로 destinationDirectoryName 유효성 검사와 관련된 예외는 추출 전에 throw됩니다. 그렇지 않으면 추출 중에 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일의 원본 항목이 보관의 루트에 있는 것처럼 에 destinationDirectoryName 지정된 디렉터리에 대한 상대 경로가 동일합니다. 보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.

적용 대상

ExtractToDirectory(String, String)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 ZIP 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

매개 변수

sourceArchiveFileName
String

추출되는 보관 위치의 경로입니다.

destinationDirectoryName
String

추출된 파일을 배치할 디렉터리의 경로이며 상대 경로 또는 절대 경로로 지정됩니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

예외

destinationDirectoryName 또는 sourceArchiveFileName은 공백만 있는 Empty이거나 잘못된 문자가 하나 이상 있는 경우입니다.

destinationDirectoryName 또는 sourceArchiveFileNamenull인 경우

destinationDirectoryName 또는 sourceArchiveFileName의 지정된 경로가 시스템 정의 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

보관 파일에 있는 항목의 이름이 Empty 상태이며, 이 이름에 공백만 있거나 잘못된 문자가 하나 이상 포함되어 있습니다.

또는

보관 항목을 추출하면 destinationDirectoryName으로 지정된 디렉터리 외부에 파일이 만들어집니다. (예를 들어 항목 이름에 부모 디렉터리 접근자가 포함된 경우 발생할 수 있습니다.)

또는

추출할 보관 항목의 이름은 이미 추출되었거나 에 destinationDirectoryName있는 항목과 같습니다.

호출자에게 보관 위치 또는 대상 디렉터리에 액세스할 수 있는 권한이 없는 경우

destinationDirectoryName 또는 sourceArchiveFileName에 잘못된 형식이 포함되어 있는 경우

sourceArchiveFileName을 찾을 수 없습니다.

sourceArchiveFileName으로 지정된 보관 위치가 올바른 zip 보관 위치가 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법으로 압축되었습니다.

예제

이 예제에서는 클래스를 사용하여 zip 보관 파일을 만들고 추출하는 ZipFile 방법을 보여줍니다. 폴더의 내용을 zip 보관 파일로 압축하고 해당 콘텐츠를 새 폴더로 추출합니다. ZipFile 클래스를 사용하려면 프로젝트에서 System.IO.Compression.FileSystem 어셈블리를 참조해야 합니다.

using System;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string startPath = @".\start";
        string zipPath = @".\result.zip";
        string extractPath = @".\extract";

        ZipFile.CreateFromDirectory(startPath, zipPath);

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
open System.IO.Compression

let startPath = @".\start"
let zipPath = @".\result.zip"
let extractPath = @".\extract"

ZipFile.CreateFromDirectory(startPath, zipPath)

ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = ".\start"
        Dim zipPath As String = ".\result.zip"
        Dim extractPath As String = ".\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

설명

이 메서드는 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다. 대상 디렉터리가 아직 존재하지 않습니다. 또는 sourceArchiveFileName 매개 변수의 경로 유효성 검사와 destinationDirectoryName 관련된 예외는 추출 전에 throw됩니다. 그렇지 않으면 추출 중에 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일의 원본 항목이 보관의 루트에 있는 것처럼 에 destinationDirectoryName 지정된 디렉터리에 대한 상대 경로가 동일합니다.

적용 대상

ExtractToDirectory(Stream, String)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하고 파일 시스템의 지정된 대상 디렉터리에 배치합니다.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Stream * string -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String)

매개 변수

source
Stream

zip 보관 파일을 추출할 스트림입니다.

destinationDirectoryName
String

추출된 파일을 배치할 디렉터리의 경로이며 상대 경로 또는 절대 경로로 지정됩니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

예외

destinationDirectoryName> 가 이거나 Empty, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.

destinationDirectoryName 또는 sourcenull인 경우

destinationDirectoryName 지정된 경로가 시스템 정의 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

보관 파일에 있는 항목의 이름이 Empty 상태이며, 이 이름에 공백만 있거나 잘못된 문자가 하나 이상 포함되어 있습니다.

또는

보관 항목을 추출하면 destinationDirectoryName으로 지정된 디렉터리 외부에 파일이 만들어집니다. (예를 들어 항목 이름에 부모 디렉터리 접근자가 포함된 경우 발생할 수 있습니다.)

또는

추출할 보관 항목의 이름은 이미 추출되었거나 에 destinationDirectoryName있는 항목과 같습니다.

호출자에게 보관 위치 또는 대상 디렉터리에 액세스할 수 있는 권한이 없는 경우

destinationDirectoryName에 잘못된 형식이 포함되어 있는 경우

스트림에 source 포함된 보관 파일이 유효한 zip 보관 파일이 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법으로 압축되었습니다.

설명

이 메서드는 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다. 대상 디렉터리가 아직 존재하지 않습니다. 매개 변수에 포함된 source zip 보관 파일 또는 의 경로 destinationDirectoryName 유효성 검사와 관련된 예외는 추출 전에 throw됩니다. 그렇지 않으면 추출 중에 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일의 원본 항목이 보관의 루트에 있는 것처럼 에 destinationDirectoryName 지정된 디렉터리에 대한 상대 경로가 동일합니다. 보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.

적용 대상

ExtractToDirectory(Stream, String, Encoding)

Source:
ZipFile.Extract.cs
Source:
ZipFile.Extract.cs

지정된 스트림에 저장된 zip 보관 파일에서 모든 파일을 추출하여 파일 시스템의 지정된 대상 디렉터리에 배치하고 항목 이름에 지정된 문자 인코딩을 사용합니다.

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding)

매개 변수

source
Stream

zip 보관 파일을 추출할 스트림입니다.

destinationDirectoryName
String

추출된 파일을 배치할 디렉터리의 경로이며 상대 경로 또는 절대 경로로 지정됩니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

entryNameEncoding
Encoding

이 아카이브에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다. 인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다.

예외

destinationDirectoryName> 가 이거나 Empty, 공백만 포함하거나, 하나 이상의 잘못된 문자를 포함합니다.

또는

entryNameEncoding이 UTF-8이 아닌 유니코드 인코딩으로 설정된 경우

destinationDirectoryName 또는 sourcenull인 경우

destinationDirectoryName 지정된 경로가 시스템 정의 최대 길이를 초과합니다.

지정된 경로가 잘못되었습니다(예: 매핑되지 않은 드라이브에 있음).

보관 파일에 있는 항목의 이름이 Empty 상태이며, 이 이름에 공백만 있거나 잘못된 문자가 하나 이상 포함되어 있습니다.

또는

보관 항목을 추출하면 destinationDirectoryName으로 지정된 디렉터리 외부에 파일이 만들어집니다. (예를 들어 항목 이름에 부모 디렉터리 접근자가 포함된 경우 발생할 수 있습니다.)

또는

추출할 보관 항목의 이름은 이미 추출되었거나 에 destinationDirectoryName있는 항목과 같습니다.

호출자에게 보관 위치 또는 대상 디렉터리에 액세스할 수 있는 권한이 없는 경우

destinationDirectoryName에 잘못된 형식이 포함되어 있는 경우

스트림에 source 포함된 보관 파일이 유효한 zip 보관 파일이 아닙니다.

또는

보관 항목을 찾을 수 없거나 손상되었습니다.

또는

보관 항목이 지원되지 않는 압축 방법으로 압축되었습니다.

설명

이 메서드는 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다. 대상 디렉터리가 아직 존재하지 않습니다. 매개 변수에 포함된 source zip 보관 파일 또는 의 경로 destinationDirectoryName 유효성 검사와 관련된 예외는 추출 전에 throw됩니다. 그렇지 않으면 추출 중에 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일의 원본 항목이 보관의 루트에 있는 것처럼 에 destinationDirectoryName 지정된 디렉터리에 대한 상대 경로가 동일합니다. 보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.

적용 대상