Partager via


ZipFile.CreateFromDirectory Méthode

Définition

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié.

Surcharges

CreateFromDirectory(String, Stream)

Crée une archive zip dans le flux spécifié qui contient les fichiers et répertoires du répertoire spécifié.

CreateFromDirectory(String, String)

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Crée une archive zip dans le flux spécifié qui contient les fichiers et répertoires du répertoire spécifié, utilise le niveau de compression spécifié et inclut éventuellement le répertoire de base.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié, utilise le niveau de compression spécifié et inclut éventuellement le répertoire de base.

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

Crée une archive zip dans le flux spécifié qui contient les fichiers et répertoires du répertoire spécifié, utilise le niveau de compression et l’encodage de caractères spécifiés pour les noms d’entrée et inclut éventuellement le répertoire de base.

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

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié, utilise le niveau de compression et l'encodage de caractères spécifiés pour les noms d'entrée, et inclut éventuellement le répertoire de base.

CreateFromDirectory(String, Stream)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crée une archive zip dans le flux spécifié qui contient les fichiers et répertoires du répertoire spécifié.

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

Paramètres

sourceDirectoryName
String

Chemin d'accès au répertoire à archiver, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

destination
Stream

Flux dans lequel l’archive zip doit être stockée.

Exceptions

sourceDirectoryName est Empty, ne contient que des espaces blancs ou contient au moins un caractère non valide.

- ou -

Le destination flux ne prend pas en charge l’écriture.

sourceDirectoryName ou destination est null.

Dans sourceDirectoryName le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

sourceDirectoryName n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).

Un fichier dans le répertoire spécifié n’a pu être ouvert.

- ou -

Une erreur d’E/S s’est produite lors de l’ouverture d’un fichier à archiver.

sourceDirectoryName contient un format non valide.

Remarques

La structure de répertoires du système de fichiers est conservée dans l’archive. Si le répertoire est vide, une archive vide est créée. Cette surcharge de méthode n’inclut pas le répertoire de base dans l’archive et ne vous permet pas de spécifier un niveau de compression. Si vous souhaitez inclure le répertoire de base ou spécifier un niveau de compression, appelez la surcharge de méthode CreateFromDirectory(String, Stream, CompressionLevel, Boolean) . Si un fichier du répertoire ne peut pas être ajouté à l’archive, l’archive reste incomplète et non valide, et la méthode lève une IOException exception.

S’applique à

CreateFromDirectory(String, String)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié.

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)

Paramètres

sourceDirectoryName
String

Chemin d'accès au répertoire à archiver, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

destinationArchiveFileName
String

Chemin d'accès de l'archive à créer, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

Exceptions

sourceDirectoryName ou destinationArchiveFileName est Empty, ne contient qu’un espace blanc ou contient au moins un caractère non valide.

sourceDirectoryName ou destinationArchiveFileName est null.

Dans sourceDirectoryName ou destinationArchiveFileName, le chemin d’accès spécifié, le nom de fichier spécifié ou les deux dépassent la longueur maximale définie par le système.

sourceDirectoryName n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).

destinationArchiveFileName existe déjà.

- ou -

Un fichier dans le répertoire spécifié n’a pu être ouvert.

- ou -

Une erreur d’E/S s’est produite lors de l’ouverture d’un fichier à archiver.

destinationArchiveFileName spécifie un répertoire.

- ou -

L’appelant n’a pas l’autorisation requise pour accéder au répertoire spécifié dans sourceDirectoryName ou dans le fichier spécifié dans destinationArchiveFileName.

sourceDirectoryName ou destinationArchiveFileName contient un format non valide.

- ou -

L’archive zip ne prend pas en charge l’écriture.

Exemples

Cet exemple montre comment créer et extraire une archive zip à l’aide de la ZipFile classe . Il compresse le contenu d’un dossier dans une archive zip, puis extrait ce contenu dans un nouveau dossier. Pour utiliser la classe ZipFile, vous devez référencer l’assembly System.IO.Compression.FileSystem dans votre projet.

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

Remarques

La structure de répertoires du système de fichiers est conservée dans l’archive. Si le répertoire est vide, une archive vide est créée. Cette surcharge de méthode n’inclut pas le répertoire de base dans l’archive et ne vous permet pas de spécifier un niveau de compression. Si vous souhaitez inclure le répertoire de base ou spécifier un niveau de compression, appelez la surcharge de méthode CreateFromDirectory(String, String, CompressionLevel, Boolean) .

Si l’archive existe déjà, une IOException exception est levée. Si une entrée portant le nom spécifié existe déjà dans l’archive, une deuxième entrée est créée avec un nom identique.

Si un fichier du répertoire ne peut pas être ajouté à l’archive, l’archive reste incomplète et non valide, et la méthode lève une IOException exception.

S’applique à

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crée une archive zip dans le flux spécifié qui contient les fichiers et répertoires du répertoire spécifié, utilise le niveau de compression spécifié et inclut éventuellement le répertoire de base.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)

Paramètres

sourceDirectoryName
String

Chemin d'accès au répertoire à archiver, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

destination
Stream

Flux dans lequel l’archive zip doit être stockée.

compressionLevel
CompressionLevel

L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur rapidité ou la compression en créant l'entrée.

includeBaseDirectory
Boolean

true pour inclure le nom de répertoire de sourceDirectoryName à la racine de l'archive ; false pour inclure uniquement le contenu du répertoire.

Exceptions

sourceDirectoryName est Empty, ne contient que des espaces blancs ou contient au moins un caractère non valide.

- ou -

Le destination flux ne prend pas en charge l’écriture.

sourceDirectoryName ou destination est null.

Dans sourceDirectoryName le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

sourceDirectoryName n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).

Un fichier dans le répertoire spécifié n’a pu être ouvert.

- ou -

Une erreur d’E/S s’est produite lors de l’ouverture d’un fichier à archiver.

sourceDirectoryName contient un format non valide.

compressionLevel n’est pas une valeur de CompressionLevel valide.

Remarques

La structure de répertoires du système de fichiers est conservée dans l’archive. Si le répertoire est vide, une archive vide est créée. Utilisez cette surcharge de méthode pour spécifier le niveau de compression et si vous souhaitez inclure le répertoire de base dans l’archive. Si un fichier du répertoire ne peut pas être ajouté à l’archive, l’archive reste incomplète et non valide, et la méthode lève une IOException exception.

S’applique à

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié, utilise le niveau de compression spécifié et inclut éventuellement le répertoire de base.

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)

Paramètres

sourceDirectoryName
String

Chemin d'accès au répertoire à archiver, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

destinationArchiveFileName
String

Chemin d'accès de l'archive à créer, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

compressionLevel
CompressionLevel

L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur rapidité ou la compression en créant l'entrée.

includeBaseDirectory
Boolean

true pour inclure le nom de répertoire de sourceDirectoryName à la racine de l'archive ; false pour inclure uniquement le contenu du répertoire.

Exceptions

sourceDirectoryName ou destinationArchiveFileName est Empty, ne contient qu’un espace blanc ou contient au moins un caractère non valide.

sourceDirectoryName ou destinationArchiveFileName est null.

Dans sourceDirectoryName ou destinationArchiveFileName, le chemin d’accès spécifié, le nom de fichier spécifié ou les deux dépassent la longueur maximale définie par le système.

sourceDirectoryName n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).

destinationArchiveFileName existe déjà.

- ou -

Un fichier dans le répertoire spécifié n’a pu être ouvert.

- ou -

Une erreur d’E/S s’est produite lors de l’ouverture d’un fichier à archiver.

destinationArchiveFileName spécifie un répertoire.

- ou -

L’appelant n’a pas l’autorisation requise pour accéder au répertoire spécifié dans sourceDirectoryName ou dans le fichier spécifié dans destinationArchiveFileName.

sourceDirectoryName ou destinationArchiveFileName contient un format non valide.

- ou -

L’archive zip ne prend pas en charge l’écriture.

Exemples

Cet exemple montre comment créer et extraire une archive zip à l’aide de la ZipFile classe . Il compresse le contenu d’un dossier dans une archive zip, puis extrait ce contenu dans un nouveau dossier. Lors de la compression de l’archive, le répertoire de base est inclus et le niveau de compression est défini pour mettre l’accent sur la vitesse de l’opération sur l’efficacité. Pour utiliser la classe ZipFile, vous devez référencer l’assembly System.IO.Compression.FileSystem dans votre projet.

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

Remarques

La structure de répertoires du système de fichiers est conservée dans l’archive. Si le répertoire est vide, une archive vide est créée. Utilisez cette surcharge de méthode pour spécifier le niveau de compression et indiquer s’il faut inclure le répertoire de base dans l’archive.

Si l’archive existe déjà, une IOException exception est levée. Si une entrée portant le nom spécifié existe déjà dans l’archive, une deuxième entrée est créée avec un nom identique.

Si un fichier du répertoire ne peut pas être ajouté à l’archive, l’archive reste incomplète et non valide, et la méthode lève une IOException exception.

S’applique à

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

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crée une archive zip dans le flux spécifié qui contient les fichiers et les répertoires du répertoire spécifié, utilise le niveau de compression et l’encodage de caractères spécifiés pour les noms d’entrée et inclut éventuellement le répertoire de base.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)

Paramètres

sourceDirectoryName
String

Chemin d'accès au répertoire à archiver, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

destination
Stream

Flux dans lequel l’archive zip doit être stockée.

compressionLevel
CompressionLevel

L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur rapidité ou la compression en créant l'entrée.

includeBaseDirectory
Boolean

true pour inclure le nom de répertoire de sourceDirectoryName à la racine de l'archive ; false pour inclure uniquement le contenu du répertoire.

entryNameEncoding
Encoding

Encodage à utiliser lors de la lecture ou de l'écriture des noms d'entrée dans cette archive. Spécifie une valeur pour ce paramètre uniquement lorsqu'un encodage est obligatoire pour l'interopérabilité avec les outils et les bibliothèques d'archivage de zip qui ne prennent pas en charge l'encodage UTF-8 pour les noms d'entrée.

Exceptions

sourceDirectoryName est Empty, ne contient que des espaces blancs ou contient au moins un caractère non valide.

- ou -

Le destination flux ne prend pas en charge l’écriture.

sourceDirectoryName ou destination est null.

Dans sourceDirectoryName le chemin d’accès spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système.

sourceDirectoryName n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).

Un fichier dans le répertoire spécifié n’a pu être ouvert.

- ou -

Une erreur d’E/S s’est produite lors de l’ouverture d’un fichier à archiver.

sourceDirectoryName contient un format non valide.

compressionLevel n’est pas une valeur de CompressionLevel valide.

Remarques

La structure de répertoires du système de fichiers est conservée dans l’archive. Si le répertoire est vide, une archive vide est créée. Utilisez cette surcharge de méthode pour spécifier le niveau de compression et l’encodage de caractères, et indiquer s’il faut inclure le répertoire de base dans l’archive. Si un fichier du répertoire ne peut pas être ajouté à l’archive, l’archive reste incomplète et non valide, et la méthode lève une IOException exception.

S’applique à

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

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crée une archive zip qui contient les fichiers et les répertoires du répertoire spécifié, utilise le niveau de compression et l'encodage de caractères spécifiés pour les noms d'entrée, et inclut éventuellement le répertoire de base.

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);
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)

Paramètres

sourceDirectoryName
String

Chemin d'accès au répertoire à archiver, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

destinationArchiveFileName
String

Chemin d'accès de l'archive à créer, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.

compressionLevel
CompressionLevel

L'une des valeurs d'énumération qui indique s'il faut mettre l'accent sur rapidité ou la compression en créant l'entrée.

includeBaseDirectory
Boolean

true pour inclure le nom de répertoire de sourceDirectoryName à la racine de l'archive ; false pour inclure uniquement le contenu du répertoire.

entryNameEncoding
Encoding

Encodage à utiliser lors de la lecture ou de l'écriture des noms d'entrée dans cette archive. Spécifie une valeur pour ce paramètre uniquement lorsqu'un encodage est obligatoire pour l'interopérabilité avec les outils et les bibliothèques d'archivage de zip qui ne prennent pas en charge l'encodage UTF-8 pour les noms d'entrée.

Exceptions

sourceDirectoryName ou destinationArchiveFileName est Empty, ne contient qu’un espace blanc ou contient au moins un caractère non valide.

- ou -

entryNameEncoding a pour valeur un encodage Unicode autre qu’UTF-8.

sourceDirectoryName ou destinationArchiveFileName est null.

Dans sourceDirectoryName ou destinationArchiveFileName, le chemin d’accès spécifié, le nom de fichier spécifié ou les deux dépassent la longueur maximale définie par le système.

sourceDirectoryName n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).

destinationArchiveFileName existe déjà.

- ou -

Un fichier dans le répertoire spécifié n’a pu être ouvert.

- ou -

Une erreur d’E/S s’est produite lors de l’ouverture d’un fichier à archiver.

destinationArchiveFileName spécifie un répertoire.

- ou -

L’appelant n’a pas l’autorisation requise pour accéder au répertoire spécifié dans sourceDirectoryName ou dans le fichier spécifié dans destinationArchiveFileName.

sourceDirectoryName ou destinationArchiveFileName contient un format non valide.

- ou -

L’archive zip ne prend pas en charge l’écriture.

Remarques

La structure de répertoires du système de fichiers est conservée dans l’archive. Si le répertoire est vide, une archive vide est créée. Utilisez cette surcharge de méthode pour spécifier le niveau de compression et l’encodage de caractères, et indiquer s’il faut inclure le répertoire de base dans l’archive.

Si l’archive existe déjà, une IOException exception est levée. Si une entrée portant le nom spécifié existe déjà dans l’archive, une deuxième entrée est créée avec un nom identique.

Si un fichier du répertoire ne peut pas être ajouté à l’archive, l’archive reste incomplète et non valide, et la méthode lève une IOException exception.

Si entryNameEncoding est défini sur une valeur autre que null, les noms d’entrée sont encodés à l’aide de l’encodage spécifié. Si l’encodage spécifié est un UTF-8, l’indicateur d’encodage de langue (dans l’indicateur de bits à usage général de l’en-tête de fichier local) est défini pour chaque entrée,

Si entryNameEncoding a la valeur null, les noms d’entrée sont encodés selon les règles suivantes :

  • Pour les noms d’entrée qui contiennent des caractères en dehors de la plage ASCII, l’indicateur d’encodage de langue est défini et UTF-8 est utilisé pour encoder le nom de l’entrée.

  • Pour les noms d’entrée qui contiennent uniquement des caractères ASCII, l’indicateur d’encodage de la langue est défini et la page de code par défaut système actuelle est utilisée pour encoder les noms d’entrée.

S’applique à