ZipFile.CreateFromDirectory Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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.