ZipFile.ExtractToDirectory Metodo

Definizione

Estrae tutti i file nell'archivio zip specificato in una directory del file system.Extracts all the files in the specified zip archive to a directory on the file system.

Overload

ExtractToDirectory(String, String)

Estrae tutti i file nell'archivio zip specificato in una directory del file system.Extracts all the files in the specified zip archive to a directory on the file system.

ExtractToDirectory(String, String, Boolean)

Estrae tutti i file nell'archivio specificato in una directory del file system.Extracts all of the files in the specified archive to a directory on the file system.

ExtractToDirectory(String, String, Encoding)

Estrae tutti i file nell'archivio zip specificato in una directory del file system e utilizza la codifica dei caratteri specificata per i nomi di voci.Extracts all the files in the specified zip archive to a directory on the file system and uses the specified character encoding for entry names.

ExtractToDirectory(String, String, Encoding, Boolean)

Estrae tutti i file nell'archivio specificato in una directory del file system.Extracts all of the files in the specified archive to a directory on the file system.

ExtractToDirectory(String, String)

Estrae tutti i file nell'archivio zip specificato in una directory del file system.Extracts all the files in the specified zip archive to a directory on the file system.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

Parametri

sourceArchiveFileName
String

Percorso dell'archivio da estrarre.The path to the archive that is to be extracted.

destinationDirectoryName
String

Percorso della directory in cui inserire i file estratti, specificato come percorso relativo o assoluto.The path to the directory in which to place the extracted files, specified as a relative or absolute path. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.A relative path is interpreted as relative to the current working directory.

Eccezioni

destinationDirectoryName o sourceArchiveFileName è Empty, contiene solo spazi vuoti oppure almeno un carattere non valido.destinationDirectoryName or sourceArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryName o sourceArchiveFileName è null.destinationDirectoryName or sourceArchiveFileName is null.

La lunghezza del percorso specificata in destinationDirectoryName o sourceArchiveFileName supera la lunghezza massima definita dal sistema.The specified path in destinationDirectoryName or sourceArchiveFileName exceeds the system-defined maximum length.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid (for example, it is on an unmapped drive).

La directory specificata da destinationDirectoryName esiste già.The directory specified by destinationDirectoryName already exists.

-oppure--or- Il nome di una voce nell'archivio è Empty, contiene solo spazi vuoti o contiene almeno un carattere non valido.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

In alternativa-or- L'estrazione di una voce dell'archivio crea un file esterno alla directory specificata da destinationDirectoryName.Extracting an archive entry would create a file that is outside the directory specified by destinationDirectoryName. (Ad esempio, si potrebbe verificare se il nome dell'elemento contiene accessori della directory padre).(For example, this might happen if the entry name contains parent directory accessors.) -oppure--or- Una voce dell'archivio da estrarre ha lo stesso nome di una voce che è già stata estratta dallo stesso archivio.An archive entry to extract has the same name as an entry that has already been extracted from the same archive.

Il chiamante non dispone dell'autorizzazione necessaria per accedere all'archivio o alla directory di destinazione.The caller does not have the required permission to access the archive or the destination directory.

destinationDirectoryName o sourceArchiveFileName contiene un formato non valido.destinationDirectoryName or sourceArchiveFileName contains an invalid format.

Il parametro sourceArchiveFileName non è stato trovato.sourceArchiveFileName was not found.

L'archivio specificato nel parametro sourceArchiveFileName non è un archivio ZIP valido.The archive specified by sourceArchiveFileName is not a valid zip archive.

-oppure--or- È stato impossibile trovare una voce dell'archivio o era danneggiata.An archive entry was not found or was corrupt.

In alternativa-or- Una voce dell'archivio è stata compressa con un metodo di compressione non supportato.An archive entry was compressed by using a compression method that is not supported.

Esempi

Questo esempio illustra come creare ed estrarre un archivio zip usando la ZipFile classe.This example shows how to create and extract a zip archive by using the ZipFile class. Comprime il contenuto di una cartella in un archivio zip ed estrae il contenuto in una nuova cartella.It compresses the contents of a folder into a zip archive and extracts that content to a new folder. Per usare la classe ZipFile, è necessario referenziare l'assembly System.IO.Compression.FileSystem nel progetto.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

Commenti

Questo metodo crea la directory specificata e tutte le sottodirectory.This method creates the specified directory and all subdirectories. La directory di destinazione non può essere già esistente.The destination directory cannot already exist. Eccezioni correlate alla convalida dei percorsi nei destinationDirectoryName parametri o sourceArchiveFileName vengono generate prima dell'estrazione.Exceptions related to validating the paths in the destinationDirectoryName or sourceArchiveFileName parameters are thrown before extraction. In caso contrario, se si verifica un errore durante l'estrazione, l'archivio rimane parzialmente estratto.Otherwise, if an error occurs during extraction, the archive remains partially extracted. Ogni file estratto ha lo stesso percorso relativo della directory specificata da destinationDirectoryName perché la relativa voce di origine ha la radice dell'archivio.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(String, String, Boolean)

Estrae tutti i file nell'archivio specificato in una directory del file system.Extracts all of the files in the specified archive to a directory on the file system.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

Parametri

sourceArchiveFileName
String

Percorso nel file system dell'archivio da estrarre.The path on the file system to the archive that is to be extracted.

destinationDirectoryName
String

Percorso della directory di destinazione nel file system.The path to the destination directory on the file system. La directory specificata non deve esistere, ma è necessario che esista la directory in cui è contenuta.The directory specified must not exist, but the directory that it is contained in must exist.

overwriteFiles
Boolean

true per sovrascrivere i file. false in caso contrario,.true to overwrite files; false otherwise.

Eccezioni

sourceArchiveFileName o destinationDirectoryName è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti da InvalidPathChars.sourceArchiveFileName or destinationDirectoryName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

sourceArchiveFileName o destinationDirectoryName è null.sourceArchiveFileName or destinationDirectoryName is null.

sourceArchiveFileName o destinationDirectoryName specifica un percorso, un nome di file o entrambi che superano la lunghezza massima definita dal sistema.sourceArchiveFileName or destinationDirectoryName specifies a path, a file name, or both that exceed the system-defined maximum length.

Il percorso specificato da sourceArchiveFileName o destinationDirectoryName non è valido (ad esempio si trova in un'unità non mappata).The path specified by sourceArchiveFileName or destinationDirectoryName is invalid (for example, it is on an unmapped drive).

La directory specificata da destinationDirectoryName esiste già.The directory specified by destinationDirectoryName already exists.

-oppure--or-

Si è verificato un errore di I/O.An I/O error has occurred.

-oppure--or-

Il nome di un ZipArchiveEntry è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti da InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

In alternativa-or-

Con l'estrazione di ZipArchiveEntry si otterrebbe una destinazione di file all'esterno della directory di destinazione, ad esempio a causa delle funzioni di accesso della directory padre.Extracting a ZipArchiveEntry would result in a file destination that is outside the destination directory (for example, because of parent directory accessors).

-oppure--or-

Un ZipArchiveEntry ha lo stesso nome di una voce già estratta dallo stesso archivio.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il formato di sourceArchiveFileName o destinationDirectoryName non è valido.sourceArchiveFileName or destinationDirectoryName is in an invalid format.

Il parametro sourceArchiveFileName non è stato trovato.sourceArchiveFileName was not found.

L'archivio specificato da sourceArchiveFileName non è un ZipArchive valido.The archive specified by sourceArchiveFileName is not a valid ZipArchive.

In alternativa-or-

Impossibile trovare un ZipArchiveEntry o la voce trovata è danneggiata.A ZipArchiveEntry was not found or was corrupt.

In alternativa-or-

Un ZipArchiveEntry è stato compresso con un metodo di compressione non supportato.A ZipArchiveEntry has been compressed using a compression method that is not supported.

Commenti

La directory specificata non deve esistere.The specified directory must not exist. Il metodo crea la directory specificata e tutte le sottodirectory.The method creates the specified directory and all subdirectories.

Se si verifica un errore durante l'estrazione dell'archivio, l'archivio rimarrà parzialmente estratto.If there is an error while extracting the archive, the archive will remain partially extracted.

Ogni voce verrà estratta in modo tale che il percorso relativo del file estratto sia uguale destinationDirectoryName a quello della voce per l'archivio.Each entry will be extracted such that the extracted file has the same relative path to the destinationDirectoryName as the entry has to the archive.

Il percorso può specificare informazioni sul percorso relativo o assoluto.The path can specify relative or absolute path information. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.A relative path is interpreted as relative to the current working directory.

Se un file da archiviare presenta un'ora dell'Ultima modifica non valida, verrà usata la prima data e ora rappresentabile nel formato timestamp Zip (mezzanotte del 1 gennaio 1980).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.

ExtractToDirectory(String, String, Encoding)

Estrae tutti i file nell'archivio zip specificato in una directory del file system e utilizza la codifica dei caratteri specificata per i nomi di voci.Extracts all the files in the specified zip archive to a directory on the file system and uses the specified character encoding for entry names.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

Parametri

sourceArchiveFileName
String

Percorso dell'archivio da estrarre.The path to the archive that is to be extracted.

destinationDirectoryName
String

Percorso della directory in cui inserire i file estratti, specificato come percorso relativo o assoluto.The path to the directory in which to place the extracted files, specified as a relative or absolute path. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.A relative path is interpreted as relative to the current working directory.

entryNameEncoding
Encoding

La codifica da utilizzare durante la lettura o la scrittura dei nomi delle voci in questo archivio.The encoding to use when reading or writing entry names in this archive. Specificare un valore per il parametro solo quando una codifica è obbligatoria per l'interoperabilità con gli strumenti e le librerie dell'archivio ZIP che non supportano la codifica UTF-8 per i nomi di voce.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.

Eccezioni

destinationDirectoryName o sourceArchiveFileName è Empty, contiene solo spazi vuoti oppure almeno un carattere non valido.destinationDirectoryName or sourceArchiveFileName is Empty, contains only white space, or contains at least one invalid character.

In alternativa-or- entryNameEncoding è impostato su una codifica Unicode diversa da UTF-8.entryNameEncoding is set to a Unicode encoding other than UTF-8.

destinationDirectoryName o sourceArchiveFileName è null.destinationDirectoryName or sourceArchiveFileName is null.

La lunghezza del percorso specificata in destinationDirectoryName o sourceArchiveFileName supera la lunghezza massima definita dal sistema.The specified path in destinationDirectoryName or sourceArchiveFileName exceeds the system-defined maximum length.

Il percorso specificato non è valido, ad esempio si trova in un'unità non mappata.The specified path is invalid (for example, it is on an unmapped drive).

La directory specificata da destinationDirectoryName esiste già.The directory specified by destinationDirectoryName already exists.

In alternativa-or- Il nome di una voce nell'archivio è Empty, contiene solo spazi vuoti o contiene almeno un carattere non valido.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

-oppure--or- L'estrazione di una voce dell'archivio crea un file esterno alla directory specificata da destinationDirectoryName.Extracting an archive entry would create a file that is outside the directory specified by destinationDirectoryName. (Ad esempio, si potrebbe verificare se il nome dell'elemento contiene accessori della directory padre).(For example, this might happen if the entry name contains parent directory accessors.) -oppure--or- Una voce dell'archivio da estrarre ha lo stesso nome di una voce che è già stata estratta dallo stesso archivio.An archive entry to extract has the same name as an entry that has already been extracted from the same archive.

Il chiamante non dispone dell'autorizzazione necessaria per accedere all'archivio o alla directory di destinazione.The caller does not have the required permission to access the archive or the destination directory.

destinationDirectoryName o sourceArchiveFileName contiene un formato non valido.destinationDirectoryName or sourceArchiveFileName contains an invalid format.

Il parametro sourceArchiveFileName non è stato trovato.sourceArchiveFileName was not found.

L'archivio specificato nel parametro sourceArchiveFileName non è un archivio ZIP valido.The archive specified by sourceArchiveFileName is not a valid zip archive.

-oppure--or- È stato impossibile trovare una voce dell'archivio o era danneggiata.An archive entry was not found or was corrupt.

-oppure--or- Una voce dell'archivio è stata compressa con un metodo di compressione non supportato.An archive entry was compressed by using a compression method that is not supported.

Commenti

Questo metodo crea la directory specificata e tutte le sottodirectory.This method creates the specified directory and all subdirectories. La directory di destinazione non può essere già esistente.The destination directory cannot already exist. Eccezioni correlate alla convalida dei percorsi nei destinationDirectoryName parametri o sourceArchiveFileName vengono generate prima dell'estrazione.Exceptions related to validating the paths in the destinationDirectoryName or sourceArchiveFileName parameters are thrown before extraction. In caso contrario, se si verifica un errore durante l'estrazione, l'archivio rimane parzialmente estratto.Otherwise, if an error occurs during extraction, the archive remains partially extracted. Ogni file estratto ha lo stesso percorso relativo della directory specificata da destinationDirectoryName perché la relativa voce di origine ha la radice dell'archivio.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.

Se entryNameEncoding è impostato su un valore nulldiverso da, i nomi di voce vengono decodificati in base alle regole seguenti:If entryNameEncoding is set to a value other than null, entry names are decoded according to the following rules:

  • Per i nomi delle voci in cui non è impostato il flag di codifica della lingua (nel flag di bit per utilizzo generico dell'intestazione del file locale), i nomi delle voci vengono decodificati utilizzando la codifica specificata.For entry names where the language encoding flag (in the general-purpose bit flag of the local file header) is not set, the entry names are decoded by using the specified encoding.

  • Per le voci in cui è impostato il flag di codifica della lingua, i nomi di voce vengono decodificati usando UTF-8.For entries where the language encoding flag is set, the entry names are decoded by using UTF-8.

Se entryNameEncoding è impostato su null, i nomi di voce vengono decodificati in base alle regole seguenti:If entryNameEncoding is set to null, entry names are decoded according to the following rules:

  • Per le voci in cui il flag di codifica della lingua (nel flag di bit per utilizzo generico dell'intestazione del file locale) non è impostato, i nomi di voce vengono decodificati utilizzando la tabella codici predefinita del sistema corrente.For entries where the language encoding flag (in the general-purpose bit flag of the local file header) is not set, entry names are decoded by using the current system default code page.

  • Per le voci in cui è impostato il flag di codifica della lingua, i nomi di voce vengono decodificati usando UTF-8.For entries where the language encoding flag is set, the entry names are decoded by using UTF-8.

ExtractToDirectory(String, String, Encoding, Boolean)

Estrae tutti i file nell'archivio specificato in una directory del file system.Extracts all of the files in the specified archive to a directory on the file system.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

Parametri

sourceArchiveFileName
String

Percorso nel file system dell'archivio da estrarre.The path on the file system to the archive that is to be extracted.

destinationDirectoryName
String

Percorso della directory di destinazione nel file system.The path to the destination directory on the file system. La directory specificata non deve esistere, ma è necessario che esista la directory in cui è contenuta.The directory specified must not exist, but the directory that it is contained in must exist.

entryNameEncoding
Encoding

Codifica da usare durante la lettura dei nomi delle voci in questo ZipArchive.The encoding to use when reading entry names in this ZipArchive.

overwriteFiles
Boolean

true per sovrascrivere i file. false in caso contrario,.true to overwrite files; false otherwise.

Eccezioni

sourceArchiveFileName o destinationDirectoryName è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti da InvalidPathChars.sourceArchiveFileName or destinationDirectoryName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-oppure--or- entryNameEncoding è impostato su una codifica Unicode diversa da UTF-8.entryNameEncoding is set to a Unicode encoding other than UTF-8.

sourceArchiveFileName o destinationDirectoryName è null.sourceArchiveFileName or destinationDirectoryName is null.

sourceArchiveFileName o destinationDirectoryName specifica un percorso, un nome di file o entrambi che superano la lunghezza massima definita dal sistema.sourceArchiveFileName or destinationDirectoryName specifies a path, a file name, or both that exceed the system-defined maximum length.

Il percorso specificato da sourceArchiveFileName o destinationDirectoryName non è valido (ad esempio si trova in un'unità non mappata).The path specified by sourceArchiveFileName or destinationDirectoryName is invalid (for example, it is on an unmapped drive).

La directory specificata da destinationDirectoryName esiste già.The directory specified by destinationDirectoryName already exists.

-oppure--or-

Si è verificato un errore di I/O.An I/O error has occurred.

In alternativa-or-

Il nome di un ZipArchiveEntry è una stringa di lunghezza zero, contiene solo spazi vuoti o contiene uno o più caratteri non validi definiti da InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-oppure--or-

Con l'estrazione di ZipArchiveEntry si otterrebbe una destinazione di file all'esterno della directory di destinazione, ad esempio a causa delle funzioni di accesso della directory padre.Extracting a ZipArchiveEntry would result in a file destination that is outside the destination directory (for example, because of parent directory accessors).

In alternativa-or-

Un ZipArchiveEntry ha lo stesso nome di una voce già estratta dallo stesso archivio.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

Il chiamante non dispone dell'autorizzazione richiesta.The caller does not have the required permission.

Il formato di sourceArchiveFileName o destinationDirectoryName non è valido.sourceArchiveFileName or destinationDirectoryName is in an invalid format.

Il parametro sourceArchiveFileName non è stato trovato.sourceArchiveFileName was not found.

L'archivio specificato da sourceArchiveFileName non è un ZipArchive valido.The archive specified by sourceArchiveFileName is not a valid ZipArchive.

In alternativa-or-

È stato impossibile trovare una voce dell'archivio o era danneggiata.An archive entry was not found or was corrupt.

-oppure--or-

La voce è stata compressa con un metodo di compressione non supportato.An archive entry has been compressed using a compression method that is not supported.

Commenti

La directory specificata non deve esistere.The specified directory must not exist. Questo metodo creerà la directory specificata e tutte le sottodirectory.This method will create the specified directory and all subdirectories.

Se si verifica un errore durante l'estrazione dell'archivio, l'archivio rimarrà parzialmente estratto.If there is an error while extracting the archive, the archive will remain partially extracted.

Ogni voce verrà estratta in modo tale che il percorso relativo del file estratto sia uguale destinationDirectoryName a quello della voce per l'archivio.Each entry will be extracted such that the extracted file has the same relative path to the destinationDirectoryName as the entry has to the archive.

Il percorso può specificare informazioni sul percorso relativo o assoluto.The path can specify relative or absolute path information. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.A relative path is interpreted as relative to the current working directory.

Se un file da archiviare presenta un'ora dell'Ultima modifica non valida, verrà usata la prima data e ora rappresentabile nel formato timestamp Zip (mezzanotte del 1 gennaio 1980).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.

Si applica a