다음을 통해 공유


ZipFileExtensions.ExtractToDirectory 메서드

정의

오버로드

ExtractToDirectory(ZipArchive, String)

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

ExtractToDirectory(ZipArchive, String, Boolean)

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

ExtractToDirectory(ZipArchive, String)

Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs

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

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)

매개 변수

source
ZipArchive

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

destinationDirectoryName
String

추출된 파일을 넣을 디렉터리의 경로입니다. 상대 경로 또는 절대 경로를 지정할 수 있습니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

예외

destinationDirectoryNameEmpty이거나, 공백만 포함하거나 또는 잘못된 문자를 하나 이상 포함하는 경우

destinationDirectoryName이(가) null인 경우

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

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

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

또는

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

또는

보관 저장소에 있는 둘 이상의 항목이 같은 이름을 갖고 있습니다.

호출자에게 대상 디렉터리에 쓸 수 있는 권한이 없는 경우

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

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

또는

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

예제

다음 예제에서는 기존 파일에서 zip 보관 파일에 새 항목을 만들고 새 디렉터리에 보관 파일을 추출하는 방법을 보여 있습니다.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

설명

이 메서드는 로 지정된 destinationDirectoryName디렉터리를 만듭니다. 또한 메서드는 zip 보관의 계층 구조를 반영하는 하위 디렉터리를 만듭니다. 추출 중에 오류가 발생하면 보관 파일이 부분적으로 추출된 상태로 유지됩니다. 추출된 각 파일의 원본 항목이 보관의 루트에 있는 것처럼 에 destinationDirectoryName 지정된 디렉터리에 대한 상대 경로가 동일합니다.

적용 대상

ExtractToDirectory(ZipArchive, String, Boolean)

Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs

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

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)

매개 변수

source
ZipArchive

추출할 ZipArchive입니다.

destinationDirectoryName
String

파일 시스템에 있는 대상 디렉터리의 경로입니다. 경로는 상대적이거나 절대적일 수 있습니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.

overwriteFiles
Boolean

true 기존 파일을 덮어쓰려면 false 그렇지 않으면.

예외

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

destinationArchiveFileName이(가) null인 경우

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

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

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

또는

ZipArchiveEntry를 추출하면 대상 파일이 destinationArchiveFileName 범위를 벗어납니다(예: 항목 이름에 부모 디렉터리 접근자가 포함된 경우).

또는

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

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

destinationArchiveFileName의 형식이 잘못되었습니다.

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

또는

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

설명

지정된 디렉터리가 이미 있을 수 있습니다. 이 메서드는 필요한 경우 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다.

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

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

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

적용 대상