ZipFile.Open 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 경로와 지정된 모드에서 ZIP 보관 위치를 엽니다.
오버로드
Open(String, ZipArchiveMode, Encoding) |
지정된 모드의 지정된 경로에서 항목 이름에 대해 지정된 문자 인코딩을 사용하며 zip 보관 파일을 엽니다. |
Open(String, ZipArchiveMode) |
지정된 경로와 지정된 모드에서 ZIP 보관 위치를 엽니다. |
Open(String, ZipArchiveMode, Encoding)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
지정된 모드의 지정된 경로에서 항목 이름에 대해 지정된 문자 인코딩을 사용하며 zip 보관 파일을 엽니다.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode, System::Text::Encoding ^ entryNameEncoding);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding? entryNameEncoding);
static member Open : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding) As ZipArchive
매개 변수
- archiveFileName
- String
열 보관 위치의 경로(상대 또는 절대 경로로 지정)입니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.
- mode
- ZipArchiveMode
열린 보관 파일의 엔트리에서 사용되는 동작을 지정하는 열거형 값 중 하나입니다.
- entryNameEncoding
- Encoding
이 아카이브에서 이름을 읽거나 쓰는 동안 사용할 인코딩입니다. 인코딩이 항목 이름에 대해 UTF-8 인코딩을 지원하지 않는 zip 보관 도구와 라이브러리를 사용하여 상호 운용성에 인코딩이 필요할 때만 이 매개 변수에 대한 값을 지정합니다.
반환
열린 zip 보관 위치입니다.
예외
archiveFileName
이 Empty이거나, 공백만 포함하거나 또는 잘못된 문자를 하나 이상 포함하는 경우
또는
entryNameEncoding
이 UTF-8이 아닌 유니코드 인코딩으로 설정된 경우
archiveFileName
이(가) null
인 경우
archiveFileName
에서 지정된 경로, 파일 이름 또는 둘 다가 시스템에 정의된 최대 길이를 초과하는 경우
archiveFileName
이 잘못되었거나 존재하지 않는 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)
archiveFileName
을 열 수 없습니다.
또는
mode
가 Create로 설정되었지만 archiveFileName
에 지정된 파일이 이미 있는 경우
또는
파일을 여는 동안 지정되지 않은 I/O 오류가 발생한 경우
archiveFileName
은 디렉터리를 지정합니다.
또는
archiveFileName
에 지정된 파일에 액세스하는 데 필요한 권한이 호출자에게 없는 경우
mode
가 잘못된 값을 지정하는 경우
mode
가 Read로 설정되었지만 archiveFileName
에 지정된 파일이 없는 경우
archiveFileName
에 잘못된 형식이 포함되어 있는 경우
archiveFileName
을 ZIP 보관 위치로 해석할 수 없습니다.
또는
mode
는 Update이고 엔트리는 없거나 손상되어 읽을 수 없습니다.
또는
mode
가 Update이지만 엔트리가 너무 커서 메모리에 들어가지 않습니다.
설명
매개 변수Read를 로 mode
설정하면 를 파일 모드 값으로 사용하여 보관 파일이 열립니다FileMode.Open. 보관 파일이 없으면 예외가 FileNotFoundException throw됩니다. 매개 변수를 mode
로 Read 설정하는 것은 메서드를 호출하는 OpenRead 것과 같습니다.
매개 변수Create를 로 mode
설정하면 를 파일 모드 값으로 사용하여 보관 파일이 열립니다FileMode.CreateNew. 보관 파일이 이미 있는 경우 이 IOException throw됩니다.
매개 변수Update를 로 mode
설정하면 를 파일 모드 값으로 사용하여 보관 파일이 열립니다FileMode.OpenOrCreate. 보관 파일이 있으면 열립니다. 기존 항목을 수정할 수 있으며 새 항목을 만들 수 있습니다. 보관 파일이 없으면 새 보관 파일이 만들어집니다. 그러나 zip 보관 Update 파일을 모드로 만드는 것은 모드에서 Create 만드는 것만큼 효율적이지 않습니다.
읽기 entryNameEncoding
위해 zip 보관 파일을 열고 로 설정 null
하면 다음 규칙에 따라 항목 이름이 디코딩됩니다.
언어 인코딩 플래그(로컬 파일 헤더의 범용 비트 플래그)가 설정되지 않은 경우 현재 시스템 기본 코드 페이지를 사용하여 항목 이름을 디코딩합니다.
언어 인코딩 플래그가 설정되면 UTF-8을 사용하여 항목 이름을 디코딩합니다.
읽기 entryNameEncoding
위해 zip 보관 파일을 열고 이 아닌 null
값으로 설정된 경우 항목 이름은 다음 규칙에 따라 디코딩됩니다.
언어 인코딩 플래그가 설정되지 않은 경우 지정된
entryNameEncoding
가 항목 이름을 디코딩하는 데 사용됩니다.언어 인코딩 플래그가 설정되면 UTF-8을 사용하여 항목 이름을 디코딩합니다.
보관 파일에 entryNameEncoding
쓰고 로 설정된 null
경우 항목 이름은 다음 규칙에 따라 인코딩됩니다.
ASCII 범위를 벗어난 문자를 포함하는 항목 이름의 경우 언어 인코딩 플래그가 설정되고 항목 이름은 UTF-8을 사용하여 인코딩됩니다.
ASCII 문자만 포함하는 항목 이름의 경우 언어 인코딩 플래그가 설정되지 않고 현재 시스템 기본 코드 페이지를 사용하여 항목 이름이 인코딩됩니다.
보관 파일에 entryNameEncoding
쓰고 이 아닌 null
값으로 설정된 경우 지정된 entryNameEncoding
는 항목 이름을 바이트로 인코딩하는 데 사용됩니다. 언어 인코딩 플래그(로컬 파일 헤더의 범용 비트 플래그)는 지정된 인코딩이 UTF-8 인코딩인 경우에만 설정됩니다.
적용 대상
Open(String, ZipArchiveMode)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
지정된 경로와 지정된 모드에서 ZIP 보관 위치를 엽니다.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode);
static member Open : string * System.IO.Compression.ZipArchiveMode -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode) As ZipArchive
매개 변수
- archiveFileName
- String
열 보관 위치의 경로(상대 또는 절대 경로로 지정)입니다. 상대 경로는 현재 작업 디렉터리에 상대적으로 해석됩니다.
- mode
- ZipArchiveMode
열린 보관 파일의 엔트리에서 사용되는 동작을 지정하는 열거형 값 중 하나입니다.
반환
열린 zip 보관 위치입니다.
예외
archiveFileName
이 Empty이거나, 공백만 포함하거나 또는 잘못된 문자를 하나 이상 포함하는 경우
archiveFileName
이(가) null
인 경우
archiveFileName
에서 지정된 경로, 파일 이름 또는 둘 다가 시스템에 정의된 최대 길이를 초과하는 경우
archiveFileName
이 잘못되었거나 존재하지 않는 경우(예: 매핑되지 않은 드라이브의 경로를 지정한 경우)
archiveFileName
을 열 수 없습니다.
또는
mode
가 Create로 설정되었지만 archiveFileName
에 지정된 파일이 이미 있는 경우
또는
파일을 여는 동안 지정되지 않은 I/O 오류가 발생한 경우
archiveFileName
은 디렉터리를 지정합니다.
또는
archiveFileName
에 지정된 파일에 액세스하는 데 필요한 권한이 호출자에게 없는 경우
mode
가 잘못된 값을 지정하는 경우
mode
가 Read로 설정되었지만 archiveFileName
에 지정된 파일이 없는 경우
archiveFileName
에 잘못된 형식이 포함되어 있는 경우
archiveFileName
을 ZIP 보관 위치로 해석할 수 없습니다.
또는
mode
는 Update이고 엔트리는 없거나 손상되어 읽을 수 없습니다.
또는
mode
가 Update이지만 엔트리가 너무 커서 메모리에 들어가지 않습니다.
예제
다음 예제에서는 업데이트 모드에서 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);
}
}
}
}
open System.IO.Compression
let zipPath = @"c:\users\exampleuser\start.zip"
let extractPath = @"c:\users\exampleuser\extract"
let newFile = @"c:\users\exampleuser\NewFile.txt"
do
use archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.CreateEntryFromFile(newFile, "NewEntry.txt") |> ignore
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
설명
매개 변수Read를 mode
로 설정하면 열거형에서 FileMode 를 파일 모드 값으로 사용하여 보관 파일이 열립니 Open 다. 보관 파일이 없으면 예외가 FileNotFoundException throw됩니다. 매개 변수를 mode
로 Read 설정하는 것은 메서드를 호출하는 OpenRead 것과 같습니다.
매개 변수Create를 로 mode
설정하면 를 파일 모드 값으로 사용하여 보관 파일이 열립니다FileMode.CreateNew. 보관 파일이 이미 있는 경우 이 IOException throw됩니다.
매개 변수Update를 로 mode
설정하면 를 파일 모드 값으로 사용하여 보관 파일이 열립니다FileMode.OpenOrCreate. 보관 파일이 있으면 열립니다. 기존 항목을 수정할 수 있으며 새 항목을 만들 수 있습니다. 보관 파일이 없으면 새 보관 파일이 만들어집니다. 그러나 zip 보관 Update 파일을 모드로 만드는 것은 모드에서 Create 만드는 것만큼 효율적이지 않습니다.
적용 대상
.NET