ZipFile.Open メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したパスと指定したモードで zip アーカイブを開きます。
オーバーロード
| 名前 | 説明 |
|---|---|
| Open(String, ZipArchiveMode) |
指定したパスと指定したモードで zip アーカイブを開きます。 |
| Open(String, ZipArchiveMode, Encoding) |
指定したパスで、指定したモードで、エントリ名とコメントに指定した文字エンコードを使用して、zip アーカイブを開きます。 |
Open(String, ZipArchiveMode)
指定したパスと指定したモードで 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
開かれたアーカイブ内のエントリで許可されるアクションを指定する列挙値の 1 つ。
返品
開かれた zip アーカイブ。
例外
archiveFileName が Empty、空白のみを含む、または少なくとも 1 つの無効な文字が含まれています。
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
注釈
mode パラメーターを Read に設定すると、ファイル モードの値としてOpen列挙体のFileModeでアーカイブが開かれます。 アーカイブが存在しない場合は、 FileNotFoundException 例外がスローされます。
mode パラメーターを Read に設定することは、OpenRead メソッドの呼び出しと同じです。
mode パラメーターを Create に設定すると、ファイル モード値としてFileMode.CreateNewでアーカイブが開かれます。 アーカイブが既に存在する場合は、 IOException がスローされます。
mode パラメーターを Update に設定すると、ファイル モード値としてFileMode.OpenOrCreateでアーカイブが開かれます。 アーカイブが存在する場合は開かれます。 既存のエントリを変更し、新しいエントリを作成できます。 アーカイブが存在しない場合は、新しいアーカイブが作成されます。ただし、 Update モードでの zip アーカイブの作成は、 Create モードでの作成ほど効率的ではありません。
適用対象
Open(String, ZipArchiveMode, Encoding)
指定したパスで、指定したモードで、エントリ名とコメントに指定した文字エンコードを使用して、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
開かれたアーカイブ内のエントリで許可されるアクションを指定する列挙値の 1 つ。
- entryNameEncoding
- Encoding
このアーカイブ内のエントリ名とコメントを読み書きするときに使用するエンコード。 このパラメーターの値は、エントリ名またはコメントに UTF-8 エンコードをサポートしていない zip アーカイブ ツールおよびライブラリとの相互運用性にエンコードが必要な場合にのみ指定します。
返品
開かれた zip アーカイブ。
例外
archiveFileName が Empty、空白のみを含む、または少なくとも 1 つの無効な文字が含まれています。
-又は-
entryNameEncoding は UTF-8 以外の Unicode エンコードに設定されています。
archiveFileName は nullです。
archiveFileNameでは、指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
archiveFileName が無効であるか、存在しません (たとえば、マップされていないドライブ上にあります)。
archiveFileName 開けませんでした。
-又は-
mode は Createに設定されていますが、 archiveFileName で指定されたファイルは既に存在します。
-又は-
ファイルを開くときに、指定されていない I/O エラーが発生しました。
archiveFileName はディレクトリを指定します。
-又は-
呼び出し元には、 archiveFileNameで指定されたファイルにアクセスするために必要なアクセス許可がありません。
mode は無効な値を指定します。
mode は Readに設定されていますが、 archiveFileName で指定されたファイルが見つかりません。
archiveFileName には無効な形式が含まれています。
archiveFileName zip アーカイブとして解釈できませんでした。
-又は-
mode は Updateですが、エントリが見つからないか破損しているため、読み取ることができません。
-又は-
mode は Updateですが、エントリが大きすぎてメモリに収まりません。
注釈
mode パラメーターを Read に設定すると、ファイル モード値としてFileMode.Openでアーカイブが開かれます。 アーカイブが存在しない場合は、 FileNotFoundException 例外がスローされます。
mode パラメーターを Read に設定することは、OpenRead メソッドの呼び出しと同じです。
mode パラメーターを Create に設定すると、ファイル モード値としてFileMode.CreateNewでアーカイブが開かれます。 アーカイブが既に存在する場合は、 IOException がスローされます。
mode パラメーターを Update に設定すると、ファイル モード値としてFileMode.OpenOrCreateでアーカイブが開かれます。 アーカイブが存在する場合は開かれます。 既存のエントリを変更し、新しいエントリを作成できます。 アーカイブが存在しない場合は、新しいアーカイブが作成されます。ただし、 Update モードでの zip アーカイブの作成は、 Create モードでの作成ほど効率的ではありません。
読み取り用の zip アーカイブ ファイルを開き、 entryNameEncoding が null に設定されている場合、エントリ名とコメントは次の規則に従ってデコードされます。
- 言語エンコード フラグ (ローカル ファイル ヘッダーの汎用ビット フラグ) が設定されていない場合、現在のシステムの既定のコード ページを使用してエントリ名とコメントをデコードします。
- 言語エンコード フラグが設定されている場合、UTF-8 を使用してエントリ名とコメントをデコードします。
読み取り用の zip アーカイブ ファイルを開き、 entryNameEncoding が null 以外の値に設定されている場合、エントリ名とコメントは次の規則に従ってデコードされます。
- 言語エンコード フラグが設定されていない場合は、指定した
entryNameEncodingを使用してエントリ名とコメントをデコードします。 - 言語エンコード フラグが設定されている場合、UTF-8 を使用してエントリ名とコメントをデコードします。
アーカイブ ファイルに書き込み、 entryNameEncoding を null に設定すると、エントリ名とコメントは次の規則に従ってエンコードされます。
- ASCII 範囲外の文字を含むエントリ名またはコメントの場合、言語エンコード フラグが設定され、エントリ名とコメントは UTF-8 を使用してエンコードされます。
- ASCII 文字のみを含むエントリ名またはコメントの場合、言語エンコード フラグは設定されず、現在のシステムの既定のコード ページを使用してエントリ名とコメントがエンコードされます。
アーカイブ ファイルに書き込み、 entryNameEncoding が null 以外の値に設定されている場合、指定した entryNameEncoding を使用して、エントリ名とコメントをバイトにエンコードします。 言語エンコード フラグ (ローカル ファイル ヘッダーの汎用ビット フラグ) は、指定したエンコードが UTF-8 エンコードの場合にのみ設定されます。