ZipFile.CreateFromDirectory Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält.
Überlädt
| Name | Beschreibung |
|---|---|
| CreateFromDirectory(String, String) |
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält. |
| CreateFromDirectory(String, String, CompressionLevel, Boolean) |
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält, die angegebene Komprimierungsebene verwendet und optional das Basisverzeichnis enthält. |
| CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) |
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält, verwendet die angegebene Komprimierungsebene und Zeichencodierung für Eintragsnamen und Kommentare und enthält optional das Basisverzeichnis. |
CreateFromDirectory(String, String)
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält.
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
Der Pfad zum zu archivierenden Verzeichnis, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- destinationArchiveFileName
- String
Der Pfad des zu erstellenden Archivs, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
Ausnahmen
sourceDirectoryName oder destinationArchiveFileName ist Empty, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.
sourceDirectoryName oder destinationArchiveFileName ist null.
In sourceDirectoryName oder destinationArchiveFileName, der angegebene Pfad, Dateiname oder beide überschreiten die vom System definierte maximale Länge.
sourceDirectoryName ist ungültig oder nicht vorhanden (z. B. auf einem nicht zugeordneten Laufwerk).
destinationArchiveFileName ist bereits vorhanden.
-oder-
Eine Datei im angegebenen Verzeichnis konnte nicht geöffnet werden.
-oder-
Beim Öffnen einer zu archivierenden Datei ist ein E/A-Fehler aufgetreten.
destinationArchiveFileName gibt ein Verzeichnis an.
-oder-
Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf das in sourceDirectoryName oder in der Datei angegebene destinationArchiveFileNameVerzeichnis.
sourceDirectoryName oder destinationArchiveFileName enthält ein ungültiges Format.
-oder-
Das ZIP-Archiv unterstützt das Schreiben nicht.
Beispiele
In diesem Beispiel wird gezeigt, wie Sie mithilfe der ZipFile Klasse ein ZIP-Archiv erstellen und extrahieren. Er komprimiert den Inhalt eines Ordners in ein ZIP-Archiv und extrahiert diesen Inhalt dann in einen neuen Ordner. Um die ZipFile Klasse zu verwenden, müssen Sie auf die System.IO.Compression.FileSystem Assembly in Ihrem Projekt verweisen.
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);
}
}
open System.IO.Compression
let startPath = @".\start"
let zipPath = @".\result.zip"
let 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. Wenn das Verzeichnis leer ist, wird ein leeres Archiv erstellt. Diese Methodenüberladung enthält nicht das Basisverzeichnis im Archiv und ermöglicht es Ihnen nicht, eine Komprimierungsebene anzugeben. Wenn Sie das Basisverzeichnis einschließen oder eine Komprimierungsebene angeben möchten, rufen Sie die CreateFromDirectory(String, String, CompressionLevel, Boolean) Methodenüberladung auf.
Wenn das Archiv bereits vorhanden ist, wird eine IOException Ausnahme ausgelöst. Wenn bereits ein Eintrag mit dem angegebenen Namen im Archiv vorhanden ist, wird ein zweiter Eintrag mit einem identischen Namen erstellt.
Wenn eine Datei im Verzeichnis dem Archiv nicht hinzugefügt werden kann, bleibt das Archiv unvollständig und ungültig, und die Methode löst eine IOException Ausnahme aus.
Gilt für:
CreateFromDirectory(String, String, CompressionLevel, Boolean)
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält, die angegebene Komprimierungsebene verwendet und optional das Basisverzeichnis enthält.
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
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)
Parameter
- sourceDirectoryName
- String
Der Pfad zum zu archivierenden Verzeichnis, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- destinationArchiveFileName
- String
Der Pfad des zu erstellenden Archivs, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- compressionLevel
- CompressionLevel
Einer der Enumerationswerte, der angibt, ob die Geschwindigkeits- oder Komprimierungseffektivität beim Erstellen des Eintrags hervorgehoben werden soll.
- includeBaseDirectory
- Boolean
true um den Verzeichnisnamen sourceDirectoryName aus dem Stammverzeichnis des Archivs einzuschließen; false um nur den Inhalt des Verzeichnisses einzuschließen.
Ausnahmen
sourceDirectoryName oder destinationArchiveFileName ist Empty, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.
sourceDirectoryName oder destinationArchiveFileName ist null.
In sourceDirectoryName oder destinationArchiveFileName, der angegebene Pfad, Dateiname oder beide überschreiten die vom System definierte maximale Länge.
sourceDirectoryName ist ungültig oder nicht vorhanden (z. B. auf einem nicht zugeordneten Laufwerk).
destinationArchiveFileName ist bereits vorhanden.
-oder-
Eine Datei im angegebenen Verzeichnis konnte nicht geöffnet werden.
-oder-
Beim Öffnen einer zu archivierenden Datei ist ein E/A-Fehler aufgetreten.
destinationArchiveFileName gibt ein Verzeichnis an.
-oder-
Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf das in sourceDirectoryName oder in der Datei angegebene destinationArchiveFileNameVerzeichnis.
sourceDirectoryName oder destinationArchiveFileName enthält ein ungültiges Format.
-oder-
Das ZIP-Archiv unterstützt das Schreiben nicht.
Beispiele
In diesem Beispiel wird gezeigt, wie Sie mithilfe der ZipFile Klasse ein ZIP-Archiv erstellen und extrahieren. Er komprimiert den Inhalt eines Ordners in ein ZIP-Archiv und extrahiert diesen Inhalt dann in einen neuen Ordner. Beim Komprimieren des Archivs ist das Basisverzeichnis enthalten, und die Komprimierungsebene wird so festgelegt, dass die Geschwindigkeit des Vorgangs gegenüber der Effizienz hervorgehoben wird. Um die ZipFile Klasse zu verwenden, müssen Sie auf die System.IO.Compression.FileSystem Assembly in Ihrem Projekt verweisen.
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);
}
}
}
open System.IO.Compression
let startPath = @"c:\example\start"
let zipPath = @"c:\example\result.zip"
let 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. Wenn das Verzeichnis leer ist, wird ein leeres Archiv erstellt. Verwenden Sie diese Methodenüberladung, um die Komprimierungsebene anzugeben und anzugeben, ob das Basisverzeichnis in das Archiv eingeschlossen werden soll.
Wenn das Archiv bereits vorhanden ist, wird eine IOException Ausnahme ausgelöst. Wenn bereits ein Eintrag mit dem angegebenen Namen im Archiv vorhanden ist, wird ein zweiter Eintrag mit einem identischen Namen erstellt.
Wenn eine Datei im Verzeichnis dem Archiv nicht hinzugefügt werden kann, bleibt das Archiv unvollständig und ungültig, und die Methode löst eine IOException Ausnahme aus.
Gilt für:
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)
Erstellt ein ZIP-Archiv, das die Dateien und Verzeichnisse aus dem angegebenen Verzeichnis enthält, verwendet die angegebene Komprimierungsebene und Zeichencodierung für Eintragsnamen und Kommentare und enthält optional das Basisverzeichnis.
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
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)
Parameter
- sourceDirectoryName
- String
Der Pfad zum zu archivierenden Verzeichnis, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- destinationArchiveFileName
- String
Der Pfad des zu erstellenden Archivs, angegeben als relativer oder absoluter Pfad. Ein relativer Pfad wird relativ zum aktuellen Arbeitsverzeichnis interpretiert.
- compressionLevel
- CompressionLevel
Einer der Enumerationswerte, der angibt, ob die Geschwindigkeits- oder Komprimierungseffektivität beim Erstellen des Eintrags hervorgehoben werden soll.
- includeBaseDirectory
- Boolean
true um den Verzeichnisnamen sourceDirectoryName aus dem Stammverzeichnis des Archivs einzuschließen; false um nur den Inhalt des Verzeichnisses einzuschließen.
- entryNameEncoding
- Encoding
Die Codierung, die beim Lesen oder Schreiben von Eintragsnamen und Kommentaren in diesem Archiv verwendet werden soll. Geben Sie einen Wert für diesen Parameter nur an, wenn eine Codierung für die Interoperabilität mit ZIP-Archivtools und -bibliotheken erforderlich ist, die utf-8-Codierung für Eintragsnamen oder Kommentare nicht unterstützen.
Ausnahmen
sourceDirectoryName oder destinationArchiveFileName ist Empty, enthält nur Leerzeichen oder enthält mindestens ein ungültiges Zeichen.
-oder-
entryNameEncoding ist auf eine andere Unicode-Codierung als UTF-8 festgelegt.
sourceDirectoryName oder destinationArchiveFileName ist null.
In sourceDirectoryName oder destinationArchiveFileName, der angegebene Pfad, Dateiname oder beide überschreiten die vom System definierte maximale Länge.
sourceDirectoryName ist ungültig oder nicht vorhanden (z. B. auf einem nicht zugeordneten Laufwerk).
destinationArchiveFileName ist bereits vorhanden.
-oder-
Eine Datei im angegebenen Verzeichnis konnte nicht geöffnet werden.
-oder-
Beim Öffnen einer zu archivierenden Datei ist ein E/A-Fehler aufgetreten.
destinationArchiveFileName gibt ein Verzeichnis an.
-oder-
Der Aufrufer verfügt nicht über die erforderliche Berechtigung für den Zugriff auf das in sourceDirectoryName oder in der Datei angegebene destinationArchiveFileNameVerzeichnis.
sourceDirectoryName oder destinationArchiveFileName enthält ein ungültiges Format.
-oder-
Das ZIP-Archiv unterstützt das Schreiben nicht.
Hinweise
Die Verzeichnisstruktur aus dem Dateisystem wird im Archiv beibehalten. Wenn das Verzeichnis leer ist, wird ein leeres Archiv erstellt. Verwenden Sie diese Methodenüberladung, um die Komprimierungsebene und die Zeichencodierung anzugeben und anzugeben, ob das Basisverzeichnis in das Archiv eingeschlossen werden soll.
Wenn das Archiv bereits vorhanden ist, wird eine IOException Ausnahme ausgelöst. Wenn bereits ein Eintrag mit dem angegebenen Namen im Archiv vorhanden ist, wird ein zweiter Eintrag mit einem identischen Namen erstellt.
Wenn eine Datei im Verzeichnis dem Archiv nicht hinzugefügt werden kann, bleibt das Archiv unvollständig und ungültig, und die Methode löst eine IOException Ausnahme aus.
Wenn entryNameEncoding dieser Wert auf einen anderen Wert festgelegt ist als null, werden die Eintragsnamen und Kommentare mithilfe der angegebenen Codierung codiert. Wenn es sich bei der angegebenen Codierung um eine UTF-8-Codierung handelt, wird für jeden Eintrag das Sprachcodierungsflagg (im allgemeinen Bit-Flag des lokalen Dateiheaders) festgelegt.
Wenn entryNameEncoding diese Einstellung festgelegt nullist, werden die Eintragsnamen und Kommentare entsprechend den folgenden Regeln codiert:
Für Eintragsnamen und Kommentare, die Zeichen außerhalb des ASCII-Bereichs enthalten, wird das Sprachcodierungsflagge festgelegt, und UTF-8 wird verwendet, um den Eintragsnamen und den Kommentar zu codieren.
Bei Eintragsnamen und Kommentaren, die nur ASCII-Zeichen enthalten, wird das Sprachcodierungskennzeichnungszeichen nicht festgelegt, und die aktuelle Standardcodeseite des Systems wird verwendet, um die Eintragsnamen und Kommentare zu codieren.