ZipFileExtensions.CreateEntryFromFile メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
圧縮し、zip アーカイブに追加することでファイルをアーカイブします。
オーバーロード
CreateEntryFromFile(ZipArchive, String, String) |
圧縮し、zip アーカイブに追加することでファイルをアーカイブします。 |
CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) |
指定した圧縮レベルで圧縮し、zip アーカイブに追加することでファイルをアーカイブします。 |
CreateEntryFromFile(ZipArchive, String, String)
圧縮し、zip アーカイブに追加することでファイルをアーカイブします。
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String) As ZipArchiveEntry
パラメーター
- destination
- ZipArchive
ファイルに追加するzip アーカイブ。
- sourceFileName
- String
アーカイブするファイルへのパス。 相対パスと絶対パスのどちらかを指定することができます。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- entryName
- String
zip アーカイブ内に作成するエントリの名前。
戻り値
zip アーカイブ内の新しいエントリのラッパー。
例外
sourceFileName
または entryName
が null
です。
sourceFileName
で、指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
sourceFileName
が有効ではありません (たとえば、マップされていないドライブにあるなど)。
で sourceFileName
指定されたファイルを開くことができないか、大きすぎて更新できません (現在の制限は Int32.MaxValue です)。
sourceFileName
がディレクトリを指定しています。
- または -
sourceFileName
によって指定されたファイルにアクセスするために必要なアクセス許可が呼び出し元にありません。
sourceFileName
で指定されたファイルが見つかりません。
zip アーカイブが破棄されました。
例
次の例は、既存のファイルから 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
注釈
アーカイブ内の新しいエントリには、 で sourceFileName
指定されたファイルの内容が含まれています。 指定した名前 (entryName
) のエントリが既にアーカイブに存在する場合は、同じ名前で 2 番目のエントリが作成されます。 エントリの プロパティは LastWriteTime 、ファイル システム上のファイルが最後に変更されたときに設定されます。
が存在する場合 ZipArchiveMode.Update
、エントリのサイズ制限は に Int32.MaxValue制限されます。 この制限は、更新モードでは、 を MemoryStream 内部的に使用してアーカイブの更新時に必要なシークを許可し、int のサイズと MemoryStream 最大が等しいためです。
適用対象
CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)
指定した圧縮レベルで圧縮し、zip アーカイブに追加することでファイルをアーカイブします。
public:
[System::Runtime::CompilerServices::Extension]
static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName, System::IO::Compression::CompressionLevel compressionLevel);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string * System.IO.Compression.CompressionLevel -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String, compressionLevel As CompressionLevel) As ZipArchiveEntry
パラメーター
- destination
- ZipArchive
ファイルに追加するzip アーカイブ。
- sourceFileName
- String
アーカイブするファイルへのパス。 相対パスと絶対パスのどちらかを指定することができます。 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。
- entryName
- String
zip アーカイブ内に作成するエントリの名前。
- compressionLevel
- CompressionLevel
エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。
戻り値
zip アーカイブ内の新しいエントリのラッパー。
例外
sourceFileName
または entryName
が null
です。
sourceFileName
が有効ではありません (たとえば、マップされていないドライブにあるなど)。
sourceFileName
で、指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
で sourceFileName
指定されたファイルを開くことができないか、大きすぎて更新できません (現在の制限は Int32.MaxValue です)。
sourceFileName
がディレクトリを指定しています。
- または -
sourceFileName
によって指定されたファイルにアクセスするために必要なアクセス許可が呼び出し元にありません。
sourceFileName
で指定されたファイルが見つかりません。
zip アーカイブが破棄されました。
例
次の例は、既存のファイルから 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", CompressionLevel.Fastest);
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
注釈
アーカイブ内の新しいエントリには、 で sourceFileName
指定されたファイルの内容が含まれています。 指定した名前 (entryName
) のエントリが既にアーカイブに存在する場合は、同じ名前で 2 番目のエントリが作成されます。 エントリの プロパティは LastWriteTime 、ファイル システム上のファイルが最後に変更されたときに設定されます。
が存在する場合 ZipArchiveMode.Update
、エントリのサイズ制限は に Int32.MaxValue制限されます。 この制限は、更新モードでは、 を MemoryStream 内部的に使用してアーカイブの更新時に必要なシークを許可し、int のサイズと MemoryStream 最大が等しいためです。
適用対象
.NET