ZipFile.CreateFromDirectory Metodo

Definizione

Crea un archivio ZIP che contiene i file e le directory della directory specificata.

Overload

CreateFromDirectory(String, Stream)

Crea un archivio ZIP nel flusso specificato che contiene i file e le directory dalla directory specificata.

CreateFromDirectory(String, String)

Crea un archivio ZIP che contiene i file e le directory della directory specificata.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Crea un archivio ZIP nel flusso specificato che contiene i file e le directory della directory specificata, usa il livello di compressione specificato e, facoltativamente, include la directory di base.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Crea un archivio ZIP che contiene i file e le directory della directory specificata, usa il livello di compressione specificato e facoltativamente include la directory di base.

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

Crea un archivio ZIP nel flusso specificato che contiene i file e le directory della directory specificata, usa il livello di compressione e la codifica dei caratteri specificati per i nomi delle voci e, facoltativamente, include la directory di base.

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

Crea un archivio ZIP che contiene i file e le directory della directory specificata, usa il livello di compressione e la codifica caratteri specificati per i nomi di voce e facoltativamente include la directory di base.

CreateFromDirectory(String, Stream)

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs

Crea un archivio ZIP nel flusso specificato che contiene i file e le directory dalla directory specificata.

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)

Parametri

sourceDirectoryName
String

Percorso della directory da archiviare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

destination
Stream

Flusso in cui archiviare l'archivio ZIP.

Eccezioni

sourceDirectoryName è Empty, contiene solo spazi vuoti oppure contiene almeno un carattere non valido.

-oppure-

Il destination flusso non supporta la scrittura.

sourceDirectoryName o destination è null.

Nel sourceDirectoryName percorso specificato, il nome del file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste, poiché, ad esempio, si trova su un'unità non mappata.

Impossibile aprire un file nella directory specificata.

-oppure-

Si è verificato un errore di I/O durante l'apertura di un file da archiviare.

sourceDirectoryName o contiene un formato non valido.

Commenti

La struttura di directory del file system viene mantenuta nell'archivio. Se la directory è vuota, viene creato un archivio vuoto. Questo overload del metodo non include la directory di base nell'archivio e non consente di specificare un livello di compressione. Se si vuole includere la directory di base o specificare un livello di compressione, chiamare l'overload del CreateFromDirectory(String, Stream, CompressionLevel, Boolean) metodo. Se non è possibile aggiungere un file nella directory all'archivio, l'archivio viene lasciato incompleto e non valido e il metodo genera un'eccezione IOException .

Si applica a

.NET 9 e .NET 8
Prodotto Versioni
.NET 8, 9

CreateFromDirectory(String, String)

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs

Crea un archivio ZIP che contiene i file e le directory della directory specificata.

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)

Parametri

sourceDirectoryName
String

Percorso della directory da archiviare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

destinationArchiveFileName
String

Percorso dell'archivio da creare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

Eccezioni

sourceDirectoryName o destinationArchiveFileName è Empty, contiene solo spazi vuoti oppure almeno un carattere non valido.

sourceDirectoryName o destinationArchiveFileName è null.

In sourceDirectoryName o destinationArchiveFileName, il percorso, il nome file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste, poiché, ad esempio, si trova su un'unità non mappata.

destinationArchiveFileName esiste già.

-oppure-

Impossibile aprire un file nella directory specificata.

-oppure-

Si è verificato un errore di I/O durante l'apertura di un file da archiviare.

destinationArchiveFileName specifica una directory.

-oppure-

Il chiamante non dispone dell'autorizzazione richiesta per accedere alla directory specificata in sourceDirectoryName o al al file specificato in destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato non valido.

-oppure-

L'archivio ZIP non supporta la scrittura.

Esempio

In questo esempio viene illustrato come creare ed estrarre un archivio ZIP usando la ZipFile classe . Comprime il contenuto di una cartella in un archivio ZIP e quindi estrae il contenuto in una nuova cartella. Per usare la classe ZipFile, è necessario referenziare l'assembly System.IO.Compression.FileSystem nel progetto.

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

Commenti

La struttura di directory del file system viene mantenuta nell'archivio. Se la directory è vuota, viene creato un archivio vuoto. Questo overload del metodo non include la directory di base nell'archivio e non consente di specificare un livello di compressione. Se si vuole includere la directory di base o specificare un livello di compressione, chiamare l'overload del CreateFromDirectory(String, String, CompressionLevel, Boolean) metodo.

Se l'archivio esiste già, viene generata un'eccezione IOException . Se esiste già una voce con il nome specificato nell'archivio, viene creata una seconda voce con un nome identico.

Se non è possibile aggiungere un file nella directory all'archivio, l'archivio viene lasciato incompleto e non valido e il metodo genera un'eccezione IOException .

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs

Crea un archivio ZIP nel flusso specificato che contiene i file e le directory della directory specificata, usa il livello di compressione specificato e, facoltativamente, include la directory di 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)

Parametri

sourceDirectoryName
String

Percorso della directory da archiviare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

destination
Stream

Flusso in cui archiviare l'archivio ZIP.

compressionLevel
CompressionLevel

Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si crea la voce.

includeBaseDirectory
Boolean

true per includere il nome della directory da sourceDirectoryName nella directory radice dell'archivio; false per includere solo il contenuto della directory.

Eccezioni

sourceDirectoryName è Empty, contiene solo spazi vuoti oppure contiene almeno un carattere non valido.

-oppure-

Il destination flusso non supporta la scrittura.

sourceDirectoryName o destination è null.

Nel sourceDirectoryName percorso specificato, il nome del file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste, poiché, ad esempio, si trova su un'unità non mappata.

Impossibile aprire un file nella directory specificata.

-oppure-

Si è verificato un errore di I/O durante l'apertura di un file da archiviare.

sourceDirectoryName o contiene un formato non valido.

compressionLevel non è un valore valido di CompressionLevel.

Commenti

La struttura di directory del file system viene mantenuta nell'archivio. Se la directory è vuota, viene creato un archivio vuoto. Utilizzare questo overload del metodo per specificare il livello di compressione e se includere la directory di base nell'archivio. Se non è possibile aggiungere un file nella directory all'archivio, l'archivio viene lasciato incompleto e non valido e il metodo genera un'eccezione IOException .

Si applica a

.NET 9 e .NET 8
Prodotto Versioni
.NET 8, 9

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs

Crea un archivio ZIP che contiene i file e le directory della directory specificata, usa il livello di compressione specificato e facoltativamente include la directory di 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)

Parametri

sourceDirectoryName
String

Percorso della directory da archiviare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

destinationArchiveFileName
String

Percorso dell'archivio da creare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

compressionLevel
CompressionLevel

Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si crea la voce.

includeBaseDirectory
Boolean

true per includere il nome della directory da sourceDirectoryName nella directory radice dell'archivio; false per includere solo il contenuto della directory.

Eccezioni

sourceDirectoryName o destinationArchiveFileName è Empty, contiene solo spazi vuoti oppure almeno un carattere non valido.

sourceDirectoryName o destinationArchiveFileName è null.

In sourceDirectoryName o destinationArchiveFileName, il percorso, il nome file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste, poiché, ad esempio, si trova su un'unità non mappata.

destinationArchiveFileName esiste già.

-oppure-

Impossibile aprire un file nella directory specificata.

-oppure-

Si è verificato un errore di I/O durante l'apertura di un file da archiviare.

destinationArchiveFileName specifica una directory.

-oppure-

Il chiamante non dispone dell'autorizzazione richiesta per accedere alla directory specificata in sourceDirectoryName o al al file specificato in destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato non valido.

-oppure-

L'archivio ZIP non supporta la scrittura.

Esempio

In questo esempio viene illustrato come creare ed estrarre un archivio ZIP usando la ZipFile classe . Comprime il contenuto di una cartella in un archivio ZIP e quindi estrae il contenuto in una nuova cartella. Quando si comprime l'archivio, la directory di base viene inclusa e il livello di compressione viene impostato per evidenziare la velocità dell'operazione rispetto all'efficienza. Per usare la classe ZipFile, è necessario referenziare l'assembly System.IO.Compression.FileSystem nel progetto.

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

Commenti

La struttura della directory dal file system viene mantenuta nell'archivio. Se la directory è vuota, viene creato un archivio vuoto. Usare questo overload del metodo per specificare il livello di compressione e se includere la directory di base nell'archivio.

Se l'archivio esiste già, viene generata un'eccezione IOException . Se esiste già una voce con il nome specificato nell'archivio, viene creata una seconda voce con un nome identico.

Se non è possibile aggiungere un file nella directory all'archivio, l'archivio viene lasciato incompleto e non valido e il metodo genera un'eccezione IOException .

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs

Crea un archivio zip nel flusso specificato che contiene i file e le directory dalla directory specificata, usa il livello di compressione e la codifica dei caratteri specificati per i nomi di voce e, facoltativamente, include la directory di 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)

Parametri

sourceDirectoryName
String

Percorso della directory da archiviare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

destination
Stream

Flusso in cui archiviare l'archivio zip.

compressionLevel
CompressionLevel

Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si crea la voce.

includeBaseDirectory
Boolean

true per includere il nome della directory da sourceDirectoryName nella directory radice dell'archivio; false per includere solo il contenuto della directory.

entryNameEncoding
Encoding

La codifica da utilizzare durante la lettura o la scrittura dei nomi delle voci in questo archivio. 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.

Eccezioni

sourceDirectoryName è Empty, contiene solo spazi vuoti oppure contiene almeno un carattere non valido.

-oppure-

Il destination flusso non supporta la scrittura.

sourceDirectoryName o destination è null.

Nel sourceDirectoryName percorso specificato, nome file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste, poiché, ad esempio, si trova su un'unità non mappata.

Impossibile aprire un file nella directory specificata.

-oppure-

Si è verificato un errore di I/O durante l'apertura di un file da archiviare.

sourceDirectoryName o contiene un formato non valido.

compressionLevel non è un valore valido di CompressionLevel.

Commenti

La struttura della directory dal file system viene mantenuta nell'archivio. Se la directory è vuota, viene creato un archivio vuoto. Usare questo overload di metodo per specificare il livello di compressione e la codifica dei caratteri e se includere la directory di base nell'archivio. Se non è possibile aggiungere un file nella directory all'archivio, l'archivio viene lasciato incompleto e non valido e il metodo genera un'eccezione IOException .

Si applica a

.NET 9 e .NET 8
Prodotto Versioni
.NET 8, 9

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

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs

Crea un archivio ZIP che contiene i file e le directory della directory specificata, usa il livello di compressione e la codifica caratteri specificati per i nomi di voce e facoltativamente include la directory di 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)

Parametri

sourceDirectoryName
String

Percorso della directory da archiviare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

destinationArchiveFileName
String

Percorso dell'archivio da creare, specificato come percorso relativo o assoluto. Un percorso relativo è interpretato rispetto alla directory di lavoro corrente.

compressionLevel
CompressionLevel

Uno dei valori di enumerazione che indica se evidenziare l'efficacia di velocità o compressione quando si crea la voce.

includeBaseDirectory
Boolean

true per includere il nome della directory da sourceDirectoryName nella directory radice dell'archivio; false per includere solo il contenuto della directory.

entryNameEncoding
Encoding

La codifica da utilizzare durante la lettura o la scrittura dei nomi delle voci in questo archivio. 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.

Eccezioni

sourceDirectoryName o destinationArchiveFileName è Empty, contiene solo spazi vuoti oppure almeno un carattere non valido.

-oppure-

entryNameEncoding è impostato su una codifica Unicode diversa da UTF-8.

sourceDirectoryName o destinationArchiveFileName è null.

In sourceDirectoryName o destinationArchiveFileName, il percorso, il nome file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste, poiché, ad esempio, si trova su un'unità non mappata.

destinationArchiveFileName esiste già.

-oppure-

Impossibile aprire un file nella directory specificata.

-oppure-

Si è verificato un errore di I/O durante l'apertura di un file da archiviare.

destinationArchiveFileName specifica una directory.

-oppure-

Il chiamante non dispone dell'autorizzazione richiesta per accedere alla directory specificata in sourceDirectoryName o al al file specificato in destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato non valido.

-oppure-

L'archivio ZIP non supporta la scrittura.

Commenti

La struttura della directory dal file system viene mantenuta nell'archivio. Se la directory è vuota, viene creato un archivio vuoto. Usare questo overload di metodo per specificare il livello di compressione e la codifica dei caratteri e se includere la directory di base nell'archivio.

Se l'archivio esiste già, viene generata un'eccezione IOException . Se esiste già una voce con il nome specificato nell'archivio, viene creata una seconda voce con un nome identico.

Se non è possibile aggiungere un file nella directory all'archivio, l'archivio viene lasciato incompleto e non valido e il metodo genera un'eccezione IOException .

Se entryNameEncoding è impostato su un valore diverso nullda , i nomi di voce vengono codificati usando la codifica specificata. Se la codifica specificata è una codifica UTF-8, il flag di codifica del linguaggio (nel flag a bit generico dell'intestazione del file locale) viene impostato per ogni voce,

Se entryNameEncoding è impostato su null, i nomi di voce vengono codificati in base alle regole seguenti:

  • Per i nomi di voce che contengono caratteri all'esterno dell'intervallo ASCII, il flag di codifica del linguaggio è impostato e UTF-8 viene usato per codificare il nome della voce.

  • Per i nomi di voce che contengono solo caratteri ASCII, il flag di codifica del linguaggio è impostato e la tabella codici predefinita del sistema corrente viene usata per codificare i nomi delle voci.

Si applica a

.NET 9 e altre versioni
Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0