ZipFileExtensions.ExtractToDirectory 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
ExtractToDirectory(ZipArchive, String) |
Zip 보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다. |
ExtractToDirectory(ZipArchive, String, Boolean) |
보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다. |
ExtractToDirectory(ZipArchive, String)
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
추출된 파일을 넣을 디렉터리의 경로입니다. 상대 경로 또는 절대 경로를 지정할 수 있습니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.
예외
destinationDirectoryName
이 Empty이거나, 공백만 포함하거나 또는 잘못된 문자를 하나 이상 포함하는 경우
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)
보관 파일의 모든 파일을 파일 시스템의 디렉터리에 추출합니다.
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
의 형식이 잘못되었습니다.
설명
지정된 디렉터리가 이미 있을 수 있습니다. 이 메서드는 필요한 경우 지정된 디렉터리와 모든 하위 디렉터리를 만듭니다.
보관 파일을 추출하는 동안 오류가 발생하면 보관 파일은 부분적으로 추출된 상태로 유지됩니다.
추출된 파일의 상대 경로 destinationDirectoryName
가 보관 파일의 루트에 있는 항목과 같도록 각 항목이 추출됩니다.
보관할 파일에 마지막으로 수정한 시간이 잘못되면 Zip 타임스탬프 형식(1980년 1월 1일 자정)으로 나타낼 수 있는 첫 번째 날짜와 시간이 사용됩니다.
적용 대상
.NET