ZipFile.CreateFromDirectory ZipFile.CreateFromDirectory ZipFile.CreateFromDirectory ZipFile.CreateFromDirectory Method

Definition

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält.Creates a zip archive that contains the files and directories from the specified directory.

Überlädt

CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String)

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält.Creates a zip archive that contains the files and directories from the specified directory.

CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean)

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält, verwendet die angegebene Komprimierungsebene und optional das Basisverzeichnis.Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory.

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält, die angegebene Komprimierungsebene und der angegebenen Zeichencodierung für Eintragsnamen verwendet und optional das Basisverzeichnis mit einbezieht.Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level and character encoding for entry names, and optionally includes the base directory.

CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String) CreateFromDirectory(String, String)

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält.Creates a zip archive that contains the files and directories from the specified directory.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
static member CreateFromDirectory : string * string -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String)

Parameter

sourceDirectoryName
String String String String

Der Pfad zum Verzeichnis, das archiviert werden soll, angegeben als relativer oder absoluter Pfad.The path to the directory to be archived, specified as a relative or absolute path. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.A relative path is interpreted as relative to the current working directory.

destinationArchiveFileName
String String String String

Der Pfad des zu erstellenden Archivs, angegeben als relativer oder absoluter Pfad.The path of the archive to be created, specified as a relative or absolute path. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.A relative path is interpreted as relative to the current working directory.

Ausnahmen

sourceDirectoryName oder destinationArchiveFileName ist Empty, enthält nur Leerraum oder mindestens ein ungültiges Zeichen.sourceDirectoryName or destinationArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

sourceDirectoryName oder destinationArchiveFileName ist null.sourceDirectoryName or destinationArchiveFileName is null.

Im sourceDirectoryName oder destinationArchiveFileName überschreiten der angegebene Pfad und/oder der Dateiname die vom System vorgegebene Höchstlänge.In sourceDirectoryName or destinationArchiveFileName, the specified path, file name, or both exceed the system-defined maximum length.

sourceDirectoryName ist ungültig oder nicht vorhanden (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).sourceDirectoryName is invalid or does not exist (for example, it is on an unmapped drive).

destinationArchiveFileName ist bereits vorhanden.destinationArchiveFileName already exists.

- oder --or- Eine Datei im angegebenen Verzeichnis konnte nicht geöffnet werden.A file in the specified directory could not be opened.

destinationArchiveFileName gibt ein Verzeichnis an.destinationArchiveFileName specifies a directory.

- oder --or- Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf das in sourceDirectoryName angegebene Verzeichnis oder die in destinationArchiveFileName angegebene Datei.The caller does not have the required permission to access the directory specified in sourceDirectoryName or the file specified in destinationArchiveFileName.

sourceDirectoryName oder destinationArchiveFileName enthält ein ungültiges Format.sourceDirectoryName or destinationArchiveFileName contains an invalid format.

- oder --or- Das ZIP-Archiv unterstützt keine Schreibvorgänge.The zip archive does not support writing.

Beispiele

Dieses Beispiel zeigt, wie Sie ein ZIP-Archiv mithilfe der ZipFile -Klasse erstellen und extrahieren.This example shows how to create and extract a zip archive by using the ZipFile class. Der Inhalt eines Ordners wird in ein ZIP-Archiv komprimiert und anschließend in einen neuen Ordner extrahiert.It compresses the contents of a folder into a zip archive, and then extracts that content to a new folder. Um die ZipFile-Klasse zu verwenden, müssen Sie auf die System.IO.Compression.FileSystem-Assembly in Ihrem Projekt verweisen.To use the ZipFile class, you must reference the System.IO.Compression.FileSystem assembly in your project.

using System;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string startPath = @".\start";
        string zipPath = @".\result.zip";
        string extractPath = @".\extract";

        ZipFile.CreateFromDirectory(startPath, zipPath);

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = ".\start"
        Dim zipPath As String = ".\result.zip"
        Dim extractPath As String = ".\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

Hinweise

Die Verzeichnisstruktur aus dem Dateisystem wird im Archiv beibehalten.The directory structure from the file system is preserved in the archive. Wenn das Verzeichnis leer ist, wird ein leeres Archiv erstellt.If the directory is empty, an empty archive is created. Diese Methoden Überladung enthält nicht das Basisverzeichnis im Archiv und ermöglicht keine Angabe einer Komprimierungs Ebene.This method overload does not include the base directory in the archive and does not allow you to specify a compression level. Wenn Sie das Basisverzeichnis einschließen oder eine Komprimierungs Ebene angeben möchten, müssen Sie CreateFromDirectory(String, String, CompressionLevel, Boolean) die-Methoden Überladung aufrufen.If you want to include the base directory or specify a compression level, call the CreateFromDirectory(String, String, CompressionLevel, Boolean) method overload.

Wenn das Archiv bereits vorhanden ist, IOException wird eine Ausnahme ausgelöst.If the archive already exists, an IOException exception is thrown. Wenn im Archiv bereits ein Eintrag mit dem angegebenen Namen vorhanden ist, wird ein zweiter Eintrag mit einem identischen Namen erstellt.If an entry with the specified name already exists in the archive, a second entry is created with an identical name.

Wenn eine Datei im Verzeichnis nicht zum Archiv hinzugefügt werden kann, bleibt das Archiv unvollständig und ungültig, und die Methode löst eine IOException Ausnahme aus.If a file in the directory cannot be added to the archive, the archive is left incomplete and invalid, and the method throws an IOException exception.

CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean) CreateFromDirectory(String, String, CompressionLevel, Boolean)

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält, verwendet die angegebene Komprimierungsebene und optional das Basisverzeichnis.Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level, and optionally includes the base directory.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool -> unit

Parameter

sourceDirectoryName
String String String String

Der Pfad zum Verzeichnis, das archiviert werden soll, angegeben als relativer oder absoluter Pfad.The path to the directory to be archived, specified as a relative or absolute path. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.A relative path is interpreted as relative to the current working directory.

destinationArchiveFileName
String String String String

Der Pfad des zu erstellenden Archivs, angegeben als relativer oder absoluter Pfad.The path of the archive to be created, specified as a relative or absolute path. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.A relative path is interpreted as relative to the current working directory.

compressionLevel
CompressionLevel CompressionLevel CompressionLevel CompressionLevel

Einer der Enumerationswerte, der angibt, ob Geschwindigkeit oder Komprimierungseffektivität priorisiert wird, wenn der Eintrag erstellt.One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry.

includeBaseDirectory
Boolean Boolean Boolean Boolean

true, um den Verzeichnisnamens von sourceDirectoryName am Stamm des Archivs einzuschließen; false, um nur der Inhalt des Verzeichnisses einzuschließen.true to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory.

Ausnahmen

sourceDirectoryName oder destinationArchiveFileName ist Empty, enthält nur Leerraum oder mindestens ein ungültiges Zeichen.sourceDirectoryName or destinationArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

sourceDirectoryName oder destinationArchiveFileName ist null.sourceDirectoryName or destinationArchiveFileName is null.

Im sourceDirectoryName oder destinationArchiveFileName überschreiten der angegebene Pfad und/oder der Dateiname die vom System vorgegebene Höchstlänge.In sourceDirectoryName or destinationArchiveFileName, the specified path, file name, or both exceed the system-defined maximum length.

sourceDirectoryName ist ungültig oder nicht vorhanden (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).sourceDirectoryName is invalid or does not exist (for example, it is on an unmapped drive).

destinationArchiveFileName ist bereits vorhanden.destinationArchiveFileName already exists.

- oder --or- Eine Datei im angegebenen Verzeichnis konnte nicht geöffnet werden.A file in the specified directory could not be opened.

destinationArchiveFileName gibt ein Verzeichnis an.destinationArchiveFileName specifies a directory.

- oder --or- Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf das in sourceDirectoryName angegebene Verzeichnis oder die in destinationArchiveFileName angegebene Datei.The caller does not have the required permission to access the directory specified in sourceDirectoryName or the file specified in destinationArchiveFileName.

sourceDirectoryName oder destinationArchiveFileName enthält ein ungültiges Format.sourceDirectoryName or destinationArchiveFileName contains an invalid format.

- oder --or- Das ZIP-Archiv unterstützt keine Schreibvorgänge.The zip archive does not support writing.

Beispiele

Dieses Beispiel zeigt, wie Sie ein ZIP-Archiv mithilfe der ZipFile -Klasse erstellen und extrahieren.This example shows how to create and extract a zip archive by using the ZipFile class. Der Inhalt eines Ordners wird in ein ZIP-Archiv komprimiert und anschließend in einen neuen Ordner extrahiert.It compresses the contents of a folder into a zip archive, and then extracts that content to a new folder. Beim Komprimieren des Archivs ist das Basisverzeichnis enthalten, und die Komprimierungs Ebene wird festgelegt, um die Geschwindigkeit des Vorgangs gegenüber der Effizienz hervorzuheben.When compressing the archive, the base directory is included and the compression level is set to emphasize the speed of the operation over efficiency. Um die ZipFile-Klasse zu verwenden, müssen Sie auf die System.IO.Compression.FileSystem-Assembly in Ihrem Projekt verweisen.To use the ZipFile class, you must reference the System.IO.Compression.FileSystem assembly in your project.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string startPath = @"c:\example\start";
            string zipPath = @"c:\example\result.zip";
            string extractPath = @"c:\example\extract";

            ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);

            ZipFile.ExtractToDirectory(zipPath, extractPath);
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = "c:\example\start"
        Dim zipPath As String = "c:\example\result.zip"
        Dim extractPath As String = "c:\example\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, True)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

Hinweise

Die Verzeichnisstruktur aus dem Dateisystem wird im Archiv beibehalten.The directory structure from the file system is preserved in the archive. Wenn das Verzeichnis leer ist, wird ein leeres Archiv erstellt.If the directory is empty, an empty archive is created. Verwenden Sie diese Methoden Überladung, um die Komprimierungs Ebene anzugeben und anzugeben, ob das Basisverzeichnis in das Archiv aufgenommen werden soll.Use this method overload to specify the compression level and whether to include the base directory in the archive.

Wenn das Archiv bereits vorhanden ist, IOException wird eine Ausnahme ausgelöst.If the archive already exists, an IOException exception is thrown. Wenn im Archiv bereits ein Eintrag mit dem angegebenen Namen vorhanden ist, wird ein zweiter Eintrag mit einem identischen Namen erstellt.If an entry with the specified name already exists in the archive, a second entry is created with an identical name.

Wenn eine Datei im Verzeichnis nicht zum Archiv hinzugefügt werden kann, bleibt das Archiv unvollständig und ungültig, und die Methode löst eine IOException Ausnahme aus.If a file in the directory cannot be added to the archive, the archive is left incomplete and invalid, and the method throws an IOException exception.

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse im angegebenen Verzeichnis enthält, die angegebene Komprimierungsebene und der angegebenen Zeichencodierung für Eintragsnamen verwendet und optional das Basisverzeichnis mit einbezieht.Creates a zip archive that contains the files and directories from the specified directory, uses the specified compression level and character encoding for entry names, and optionally includes the base directory.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit

Parameter

sourceDirectoryName
String String String String

Der Pfad zum Verzeichnis, das archiviert werden soll, angegeben als relativer oder absoluter Pfad.The path to the directory to be archived, specified as a relative or absolute path. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.A relative path is interpreted as relative to the current working directory.

destinationArchiveFileName
String String String String

Der Pfad des zu erstellenden Archivs, angegeben als relativer oder absoluter Pfad.The path of the archive to be created, specified as a relative or absolute path. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.A relative path is interpreted as relative to the current working directory.

compressionLevel
CompressionLevel CompressionLevel CompressionLevel CompressionLevel

Einer der Enumerationswerte, der angibt, ob Geschwindigkeit oder Komprimierungseffektivität priorisiert wird, wenn der Eintrag erstellt.One of the enumeration values that indicates whether to emphasize speed or compression effectiveness when creating the entry.

includeBaseDirectory
Boolean Boolean Boolean Boolean

true, um den Verzeichnisnamens von sourceDirectoryName am Stamm des Archivs einzuschließen; false, um nur der Inhalt des Verzeichnisses einzuschließen.true to include the directory name from sourceDirectoryName at the root of the archive; false to include only the contents of the directory.

entryNameEncoding
Encoding Encoding Encoding Encoding

Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen in diesem Archiv verwendet werden soll.The encoding to use when reading or writing entry names in this archive. Geben Sie einen Wert für diesen Parameter nur an, wenn eine Codierung für die Interoperabilität mit ZIP-Archiv-Tools und -Bibliotheken erforderlich ist, die die UTF-8-Codierung für Eintragsnamen nicht unterstützen.Specify a value for this parameter only when an encoding is required for interoperability with zip archive tools and libraries that do not support UTF-8 encoding for entry names.

Ausnahmen

sourceDirectoryName oder destinationArchiveFileName ist Empty, enthält nur Leerraum oder mindestens ein ungültiges Zeichen.sourceDirectoryName or destinationArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

- oder --or- entryNameEncoding wird auf eine andere Unicode-Codierung als UTF-8 festgelegt.entryNameEncoding is set to a Unicode encoding other than UTF-8.

sourceDirectoryName oder destinationArchiveFileName ist null.sourceDirectoryName or destinationArchiveFileName is null.

Im sourceDirectoryName oder destinationArchiveFileName überschreiten der angegebene Pfad und/oder der Dateiname die vom System vorgegebene Höchstlänge.In sourceDirectoryName or destinationArchiveFileName, the specified path, file name, or both exceed the system-defined maximum length.

sourceDirectoryName ist ungültig oder nicht vorhanden (z. B. befindet er sich auf einem nicht zugeordneten Laufwerk).sourceDirectoryName is invalid or does not exist (for example, it is on an unmapped drive).

destinationArchiveFileName ist bereits vorhanden.destinationArchiveFileName already exists.

- oder --or- Eine Datei im angegebenen Verzeichnis konnte nicht geöffnet werden.A file in the specified directory could not be opened.

destinationArchiveFileName gibt ein Verzeichnis an.destinationArchiveFileName specifies a directory.

- oder --or- Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf das in sourceDirectoryName angegebene Verzeichnis oder die in destinationArchiveFileName angegebene Datei.The caller does not have the required permission to access the directory specified in sourceDirectoryName or the file specified in destinationArchiveFileName.

sourceDirectoryName oder destinationArchiveFileName enthält ein ungültiges Format.sourceDirectoryName or destinationArchiveFileName contains an invalid format.

- oder --or- Das ZIP-Archiv unterstützt keine Schreibvorgänge.The zip archive does not support writing.

Hinweise

Die Verzeichnisstruktur aus dem Dateisystem wird im Archiv beibehalten.The directory structure from the file system is preserved in the archive. Wenn das Verzeichnis leer ist, wird ein leeres Archiv erstellt.If the directory is empty, an empty archive is created. Verwenden Sie diese Methoden Überladung, um die Komprimierungs Ebene und die Zeichencodierung anzugeben und anzugeben, ob das Basisverzeichnis in das Archiv eingeschlossen werden soll.Use this method overload to specify the compression level and character encoding, and whether to include the base directory in the archive.

Wenn das Archiv bereits vorhanden ist, IOException wird eine Ausnahme ausgelöst.If the archive already exists, an IOException exception is thrown. Wenn im Archiv bereits ein Eintrag mit dem angegebenen Namen vorhanden ist, wird ein zweiter Eintrag mit einem identischen Namen erstellt.If an entry with the specified name already exists in the archive, a second entry is created with an identical name.

Wenn eine Datei im Verzeichnis nicht zum Archiv hinzugefügt werden kann, bleibt das Archiv unvollständig und ungültig, und die Methode löst eine IOException Ausnahme aus.If a file in the directory cannot be added to the archive, the archive is left incomplete and invalid, and the method throws an IOException exception.

Wenn entryNameEncoding auf einen anderen Wert als nullfestgelegt ist, werden die Eintrags Namen mithilfe der angegebenen Codierung codiert.If entryNameEncoding is set to a value other than null, the entry names are encoded by using the specified encoding. Wenn die angegebene Codierung UTF-8 ist, wird für jeden Eintrag das sprachcodierungsflag (im Bitflag "General Purpose" des lokalen Datei Headers) festgelegt.If the specified encoding is a UTF-8, the language encoding flag (in the general-purpose bit flag of the local file header) is set for each entry,

Wenn entryNameEncoding aufnullfestgelegt ist, werden die Eintrags Namen gemäß den folgenden Regeln codiert:If entryNameEncoding is set to null, the entry names are encoded according to the following rules:

  • Für Eintrags Namen, die Zeichen außerhalb des ASCII-Bereichs enthalten, wird das sprachcodierungsflag festgelegt, und UTF-8 wird verwendet, um den Namen des Eintrags zu codieren.For entry names that contain characters outside the ASCII range, the language encoding flag is set, and UTF-8 is used to encode the entry name.

  • Für Eintrags Namen, die nur ASCII-Zeichen enthalten, wird das Language Encoding-Flag festgelegt, und die aktuelle System Standard Codepage wird zum Codieren der Eintrags Namen verwendet.For entry names that contain only ASCII characters, the language encoding flag is set, and the current system default code page is used to encode the entry names.

Gilt für: