ZipFileExtensions.CreateEntryFromFile ZipFileExtensions.CreateEntryFromFile ZipFileExtensions.CreateEntryFromFile ZipFileExtensions.CreateEntryFromFile Method

定義

圧縮し、zip アーカイブに追加することでファイルをアーカイブします。Archives a file by compressing it and adding it to the zip archive.

オーバーロード

CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String)

圧縮し、zip アーカイブに追加することでファイルをアーカイブします。Archives a file by compressing it and adding it to the zip archive.

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

指定した圧縮レベルで圧縮し、zip アーカイブに追加することでファイルをアーカイブします。Archives a file by compressing it using the specified compression level and adding it to the zip archive.

CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String) CreateEntryFromFile(ZipArchive, String, String)

圧縮し、zip アーカイブに追加することでファイルをアーカイブします。Archives a file by compressing it and adding it to the zip archive.

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 ZipArchive ZipArchive ZipArchive

ファイルに追加するzip アーカイブ。The zip archive to add the file to.

sourceFileName
String String String String

アーカイブするファイルへのパス。The path to the file to be archived. 相対パスまたは絶対パスを指定できます。You can specify either a relative or an absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

entryName
String String String String

zip アーカイブ内に作成するエントリの名前。The name of the entry to create in the zip archive.

戻り値

zip アーカイブ内の新しいエントリのラッパー。A wrapper for the new entry in the zip archive.

例外

sourceFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。sourceFileName is Empty, contains only white space, or contains at least one invalid character.

- または --or- entryNameEmptyです。entryName is Empty.

sourceFileName または entryNamenull です。sourceFileName or entryName is null.

sourceFileName で、指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。In sourceFileName, the specified path, file name, or both exceed the system-defined maximum length.

sourceFileName が有効ではありません (たとえば、マップされていないドライブにあるなど)。sourceFileName is invalid (for example, it is on an unmapped drive).

sourceFileName によって指定されたファイルは、開くことができないか、または大きすぎて更新できません (現在の制限は Int32.MaxValue)。The file specified by sourceFileName cannot be opened, or is too large to be updated (current limit is Int32.MaxValue).

sourceFileName はディレクトリを指定します。sourceFileName specifies a directory.

- または --or- sourceFileName によって指定されたファイルにアクセスするために必要なアクセス許可が呼び出し元にありません。The caller does not have the required permission to access the file specified by sourceFileName.

sourceFileName で指定されたファイルが見つかりません。The file specified by sourceFileName is not found.

sourceFileName パラメーターの形式が正しくありません。The sourceFileName parameter is in an invalid format.

または-or- zip アーカイブは書き込みをサポートしません。The zip archive does not support writing.

zip アーカイブが破棄されました。The zip archive has been disposed.

次の例では、既存のファイルから zip アーカイブに新しいエントリを作成する方法を示します。The following example shows how to create a new entry in a zip archive from an existing file.

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指定されたファイルの内容が含まれています。The new entry in the archive contains the contents of the file specified by sourceFileName. 指定した名前 (entryName) のエントリがアーカイブ内に既に存在する場合は、同じ名前で2番目のエントリが作成されます。If an entry with the specified name (entryName) already exists in the archive, a second entry is created with an identical name. エントリLastWriteTimeのプロパティは、ファイルシステム上のファイルが最後に変更された時刻に設定されます。The LastWriteTime property of the entry is set to the last time the file on the file system was changed.

ZipArchiveMode.Update存在する場合、エントリのサイズ制限はにInt32.MaxValue制限されます。When ZipArchiveMode.Update is present, the size limit of an entry is limited to Int32.MaxValue. この制限は、更新モードが内部MemoryStreamでを使用してアーカイブを更新するときに必要MemoryStreamなシークを許可し、最大値が int のサイズと同じであるためです。This limit is because update mode uses a MemoryStream internally to allow the seeking required when updating an archive, and MemoryStream has a maximum equal to the size of an int.

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

指定した圧縮レベルで圧縮し、zip アーカイブに追加することでファイルをアーカイブします。Archives a file by compressing it using the specified compression level and adding it to the zip archive.

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

パラメーター

destination
ZipArchive ZipArchive ZipArchive ZipArchive

ファイルに追加するzip アーカイブ。The zip archive to add the file to.

sourceFileName
String String String String

アーカイブするファイルへのパス。The path to the file to be archived. 相対パスまたは絶対パスを指定できます。You can specify either a relative or an absolute path. 相対パスは、現在の作業ディレクトリに対して相対的に解釈されます。A relative path is interpreted as relative to the current working directory.

entryName
String String String String

zip アーカイブ内に作成するエントリの名前。The name of the entry to create in the zip archive.

compressionLevel
CompressionLevel CompressionLevel CompressionLevel CompressionLevel

エントリの作成時に速度または圧縮の有効性を強調するかどうかを示す列挙値の 1 つ。One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry.

戻り値

zip アーカイブ内の新しいエントリのラッパー。A wrapper for the new entry in the zip archive.

例外

sourceFileNameEmpty であるか、空白文字のみが含まれているか、無効な文字が少なくとも 1 つ含まれています。sourceFileName is Empty, contains only white space, or contains at least one invalid character.

または-or- entryNameEmpty です。entryName is Empty.

sourceFileName または entryNamenull です。sourceFileName or entryName is null.

sourceFileName が有効ではありません (たとえば、マップされていないドライブにあるなど)。sourceFileName is invalid (for example, it is on an unmapped drive).

sourceFileName で、指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。In sourceFileName, the specified path, file name, or both exceed the system-defined maximum length.

sourceFileName によって指定されたファイルは、開くことができないか、または大きすぎて更新できません (現在の制限は Int32.MaxValue)。The file specified by sourceFileName cannot be opened, or is too large to be updated (current limit is Int32.MaxValue).

sourceFileName はディレクトリを指定します。sourceFileName specifies a directory.

または-or- sourceFileName によって指定されたファイルにアクセスするために必要なアクセス許可が呼び出し元にありません。The caller does not have the required permission to access the file specified by sourceFileName.

sourceFileName で指定されたファイルが見つかりません。The file specified by sourceFileName is not found.

sourceFileName パラメーターの形式が正しくありません。The sourceFileName parameter is in an invalid format.

または-or- zip アーカイブは書き込みをサポートしません。The zip archive does not support writing.

zip アーカイブが破棄されました。The zip archive has been disposed.

次の例では、既存のファイルから zip アーカイブに新しいエントリを作成し、圧縮レベルを指定する方法を示します。The following example shows how to create a new entry in a zip archive from an existing file, and specify the compression level.

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指定されたファイルの内容が含まれています。The new entry in the archive contains the contents of the file specified by sourceFileName. 指定した名前 (entryName) のエントリがアーカイブ内に既に存在する場合は、同じ名前で2番目のエントリが作成されます。If an entry with the specified name (entryName) already exists in the archive, a second entry is created with an identical name. エントリLastWriteTimeのプロパティは、ファイルシステム上のファイルが最後に変更された時刻に設定されます。The LastWriteTime property of the entry is set to the last time the file on the file system was changed.

ZipArchiveMode.Update存在する場合、エントリのサイズ制限はにInt32.MaxValue制限されます。When ZipArchiveMode.Update is present, the size limit of an entry is limited to Int32.MaxValue. この制限は、更新モードが内部MemoryStreamでを使用してアーカイブを更新するときに必要MemoryStreamなシークを許可し、最大値が int のサイズと同じであるためです。This limit is because update mode uses a MemoryStream internally to allow the seeking required when updating an archive, and MemoryStream has a maximum equal to the size of an int.

適用対象