ZipFile.Open 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 경로 및 지정된 모드에서 zip 보관 파일을 엽니다.
오버로드
| Name | Description |
|---|---|
| Open(String, ZipArchiveMode) |
지정된 경로 및 지정된 모드에서 zip 보관 파일을 엽니다. |
| Open(String, ZipArchiveMode, Encoding) |
지정된 경로, 지정된 모드 및 항목 이름 및 주석에 지정된 문자 인코딩을 사용하여 zip 보관 파일을 엽니다. |
Open(String, ZipArchiveMode)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- 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 를 열 수 없습니다.
-또는-
-또는-
파일을 여는 동안 지정되지 않은 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
설명
매개 변수를 modeRead설정하면 열거형에서 Open 파일 모드 값으로 FileMode 보관 파일이 열립니다. 보관 파일이 없으면 예외가 FileNotFoundException throw됩니다. 매개 변수를 modeRead 설정하는 것은 메서드를 호출하는 OpenRead 것과 같습니다.
매개 변수mode를 Create 설정하면 보관 파일이 파일 모드 값으로 FileMode.CreateNew 열립니다. 보관 파일이 이미 있는 경우 throw IOException 됩니다.
매개 변수mode를 Update 설정하면 보관 파일이 파일 모드 값으로 FileMode.OpenOrCreate 열립니다. 보관 파일이 있으면 열립니다. 기존 항목을 수정할 수 있으며 새 항목을 만들 수 있습니다. 보관 파일이 없으면 새 보관 파일이 만들어집니다. 그러나 zip 보관 파일을 모드로 Update 만드는 것은 모드에서 Create 만드는 것만큼 효율적이지 않습니다.
적용 대상
Open(String, ZipArchiveMode, Encoding)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- 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 를 열 수 없습니다.
-또는-
-또는-
파일을 여는 동안 지정되지 않은 I/O 오류가 발생했습니다.
archiveFileName 는 디렉터리를 지정합니다.
-또는-
호출자에게 지정된 파일에 archiveFileName액세스하는 데 필요한 권한이 없습니다.
mode 은 잘못된 값을 지정합니다.
mode 로 설정되어 Read있지만 지정된 archiveFileName 파일을 찾을 수 없습니다.
archiveFileName 에 잘못된 형식이 포함되어 있습니다.
archiveFileName zip 보관 파일로 해석할 수 없습니다.
-또는-
mode 가 Update있지만 항목이 없거나 손상되어 읽을 수 없습니다.
-또는-
mode 가 Update있지만 항목이 너무 커서 메모리에 맞지 않습니다.
설명
매개 변수mode를 Read 설정하면 보관 파일이 파일 모드 값으로 FileMode.Open 열립니다. 보관 파일이 없으면 예외가 FileNotFoundException throw됩니다. 매개 변수를 modeRead 설정하는 것은 메서드를 호출하는 OpenRead 것과 같습니다.
매개 변수mode를 Create 설정하면 보관 파일이 파일 모드 값으로 FileMode.CreateNew 열립니다. 보관 파일이 이미 있는 경우 throw IOException 됩니다.
매개 변수mode를 Update 설정하면 보관 파일이 파일 모드 값으로 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 인코딩인 경우에만 설정됩니다.