ZipFile.Open メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したパスとモードで zip アーカイブを開きます。
オーバーロード
Open(String, ZipArchiveMode, Encoding) |
指定されたモードで、エントリ名に指定された文字エンコーディングを使用して指定されたパスの zip のアーカイブを開きます。 |
Open(String, ZipArchiveMode) |
指定したパスとモードで zip アーカイブを開きます。 |
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開かれます。 アーカイブが存在する場合は開かれます。 既存のエントリを変更し、新しいエントリを作成できます。 アーカイブが存在しない場合は、新しいアーカイブが作成されます。ただし、モードでの zip アーカイブの作成は、モードでのUpdateCreate作成ほど効率的ではありません。
読み取り 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)
指定したパスとモードで 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設定すると、ファイル モードの値として 列挙から FileMode でOpenアーカイブが開かれます。 アーカイブが存在しない場合は、 FileNotFoundException 例外がスローされます。 パラメーターを にmode
Read設定することは、 メソッドの呼び出しとOpenRead同じです。
パラメーターを にmode
Create設定すると、アーカイブは ファイル モードの値として でFileMode.CreateNew開かれます。 アーカイブが既に存在する場合は、 IOException がスローされます。
パラメーターを にmode
Update設定すると、アーカイブは ファイル モードの値として でFileMode.OpenOrCreate開かれます。 アーカイブが存在する場合は開かれます。 既存のエントリを変更し、新しいエントリを作成できます。 アーカイブが存在しない場合は、新しいアーカイブが作成されます。ただし、モードでの zip アーカイブの作成は、モードでのUpdateCreate作成ほど効率的ではありません。
適用対象
.NET