ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory Method

Définition

Surcharges

ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String)

Extrait tous les fichiers dans l'archive zip d'un répertoire sur le système de fichiers.Extracts all the files in the zip archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

Extrait tous les fichiers de l’archive dans un répertoire du système de fichiers.Extracts all of the files in the archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String)

Extrait tous les fichiers dans l'archive zip d'un répertoire sur le système de fichiers.Extracts all the files in the zip archive to a directory on the file system.

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)

Paramètres

source
ZipArchive ZipArchive ZipArchive ZipArchive

Archive ZIP depuis laquelle extraire les fichiers.The zip archive to extract files from.

destinationDirectoryName
String String String String

Chemin d'accès au répertoire dans lequel placer les fichiers extraits.The path to the directory to place the extracted files in. Spécification possible d'un chemin d'accès absolu ou relatif.You can specify either a relative or an absolute path. Un chemin d'accès relatif est interprété comme étant relatif au répertoire de travail actif.A relative path is interpreted as relative to the current working directory.

Exceptions

destinationDirectoryName est Empty, ne contient qu'un espace blanc ou contient au moins un caractère non valide.destinationDirectoryName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryName est null.destinationDirectoryName is null.

Le chemin d'accès spécifié dépasse la longueur maximale définie par le système.The specified path exceeds the system-defined maximum length.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).The specified path is invalid (for example, it is on an unmapped drive).

Le répertoire spécifié par destinationDirectoryName existe déjà.The directory specified by destinationDirectoryName already exists.

- ou --or- Le nom d'une entrée dans l'archive est Empty, il contient uniquement des espaces blancs ou il contient au moins un caractère non valide.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

ou-or- L'extraction d'une entrée de l'archive pourrait créer un fichier qui se trouve en dehors du répertoire spécifié par destinationDirectoryName.Extracting an entry from the archive would create a file that is outside the directory specified by destinationDirectoryName. (Par exemple, cela peut se produire si le nom d'entrée contient des accesseurs de répertoire parent.)(For example, this might happen if the entry name contains parent directory accessors.) ou-or- Plusieurs entrées de l'archive portent le même nom.Two or more entries in the archive have the same name.

L'appelant n'a pas l'autorisation requise pour écrire dans le répertoire de destination.The caller does not have the required permission to write to the destination directory.

destinationDirectoryName contient un format non valide.destinationDirectoryName contains an invalid format.

Entrée d'archive introuvable ou endommagée.An archive entry cannot be found or is corrupt.

ou-or-

L'entrée d'archive a été compressée à l'aide d'une méthode de compression non prise en charge.An archive entry was compressed by using a compression method that is not supported.

Exemples

L’exemple suivant montre comment créer une nouvelle entrée dans une archive zip à partir d’un fichier existant et comment extraire l’archive dans un nouveau répertoire.The following example shows how to create a new entry in a zip archive from an existing file, and extract the archive to a new directory. Pour compiler cet exemple de code, vous devez référencer les System.IO.Compression assemblys System.IO.Compression.FileSystem et dans votre projet.In order to compiler this code example, you must reference the System.IO.Compression and System.IO.Compression.FileSystem assemblies in your project.

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

Remarques

Cette méthode crée le répertoire spécifié par destinationDirectoryName.This method creates the directory specified by destinationDirectoryName. Si le répertoire de destination existe déjà, cette méthode ne le remplace pas; elle lève une IOException exception.If the destination directory already exists, this method does not overwrite it; it throws an IOException exception. La méthode crée également des sous-répertoires qui reflètent la hiérarchie dans l’archive zip.The method also creates subdirectories that reflect the hierarchy in the zip archive. Si une erreur se produit pendant l’extraction, l’archive reste partiellement extraite.If an error occurs during extraction, the archive remains partially extracted. Chaque fichier extrait a le même chemin d’accès relatif au répertoire spécifié destinationDirectoryName par que son entrée source a à la racine de l’archive.Each extracted file has the same relative path to the directory specified by destinationDirectoryName as its source entry has to the root of the archive.

ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

Extrait tous les fichiers de l’archive dans un répertoire du système de fichiers.Extracts all of the files in the archive to a directory on the file system.

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)

Paramètres

source
ZipArchive ZipArchive ZipArchive ZipArchive

ZipArchive à extraire.The ZipArchive to extract.

destinationDirectoryName
String String String String

Chemin du répertoire de destination dans le système de fichiers.The path to the destination directory on the file system. Le chemin peut être relatif ou absolu.The path can be relative or absolute. Un chemin d'accès relatif est interprété comme étant relatif au répertoire de travail actif.A relative path is interpreted as relative to the current working directory.

overwriteFiles
Boolean Boolean Boolean Boolean

true pour indiquer que les fichiers existants doivent être remplacés ; false dans le cas contraire.true to indicate that existing files are to be overwritten; false otherwise.

Exceptions

destinationArchiveFileName est une chaîne de longueur nulle, contient seulement un espace blanc ou contient un ou plusieurs caractères non valides tels que définis par InvalidPathChars.destinationArchiveFileName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

destinationArchiveFileName est null.destinationArchiveFileName is null.

Le chemin et/ou le nom de fichier spécifiés dépassent la longueur maximale définie par le système.The specified path, file name, or both exceed the system-defined maximum length.

Le chemin spécifié n’est pas valide (par exemple, il est sur un lecteur non mappé).The specified path is invalid, (for example, it is on an unmapped drive).

Le nom d’un ZipArchiveEntry a une longueur nulle, contient seulement un espace blanc ou contient un ou plusieurs caractères non valides tels que définis par InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

- ou --or-

L’extraction d’un ZipArchiveEntry aurait eu pour résultat un fichier de destination situé à l’extérieur de destinationArchiveFileName (par exemple, si le nom de l’entrée contient des accesseurs de répertoire parent).Extracting a ZipArchiveEntry would have resulted in a destination file that is outside destinationArchiveFileName (for example, if the entry name contains parent directory accessors).

ou-or-

Un ZipArchiveEntry a le même nom qu’une entrée déjà extraite de la même archive.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

L'appelant n'a pas l'autorisation requise.The caller does not have the required permission.

destinationArchiveFileName a un format non valide.destinationArchiveFileName is in an invalid format.

Un ZipArchiveEntry n’a pas été trouvé ou était endommagé.A ZipArchiveEntry was not found or was corrupt.

ou-or-

Un ZipArchiveEntry a été compressé à l’aide d’une méthode de compression qui n’est pas prise en charge.A ZipArchiveEntry has been compressed using a compression method that is not supported.

Remarques

Le répertoire spécifié existe peut-être déjà.The specified directory may already exist. Cette méthode crée le répertoire spécifié et tous les sous-répertoires, si nécessaire.This method will create the specified directory and all subdirectories if necessary.

En cas d’erreur lors de l’extraction de l’archive, l’archive reste partiellement extraite.If there is an error while extracting the archive, the archive will remain partially extracted.

Chaque entrée sera extraite de telle sorte que le fichier extrait ait le même chemin destinationDirectoryName d’accès relatif que celui de l’entrée à la racine de l’archive.Each entry will be extracted such that the extracted file has the same relative path to destinationDirectoryName as the entry has to the root of the archive.

Si un fichier à archiver a une heure de dernière modification non valide, la première date et l’heure représentables dans le format d’horodatage zip (minuit le 1er janvier 1980) seront utilisées.If a file to be archived has an invalid last modified time, the first date and time representable in the Zip timestamp format (midnight on January 1, 1980) will be used.

S’applique à