ZipFile.CreateFromDirectory Metodo

Definizione

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

Overload

Nome Descrizione
CreateFromDirectory(String, String)

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

CreateFromDirectory(String, String, CompressionLevel, Boolean)

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

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

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

CreateFromDirectory(String, String)

Crea un archivio ZIP che contiene i file e le directory dalla 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 viene interpretato come relativo alla directory di lavoro corrente.

destinationArchiveFileName
String

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

Eccezioni

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

sourceDirectoryName o destinationArchiveFileName è null.

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

sourceDirectoryName non è valido o non esiste (ad esempio, si trova in 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 necessaria per accedere alla directory specificata in sourceDirectoryName o al file specificato in destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato non valido.

oppure

L'archivio ZIP non supporta la scrittura.

Esempio

Questo esempio illustra 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 ZipFile classe , è necessario fare riferimento all'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 desidera 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

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Crea un archivio ZIP che contiene i file e le directory dalla 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 viene interpretato come relativo alla directory di lavoro corrente.

destinationArchiveFileName
String

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

compressionLevel
CompressionLevel

Uno dei valori di enumerazione che indica se evidenziare l'efficacia della velocità o della compressione durante la creazione della voce.

includeBaseDirectory
Boolean

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

Eccezioni

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

sourceDirectoryName o destinationArchiveFileName è null.

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

sourceDirectoryName non è valido o non esiste (ad esempio, si trova in 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 necessaria per accedere alla directory specificata in sourceDirectoryName o al file specificato in destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato non valido.

oppure

L'archivio ZIP non supporta la scrittura.

Esempio

Questo esempio illustra 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 ZipFile classe , è necessario fare riferimento all'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 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 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

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

Crea un archivio ZIP che contiene i file e le directory dalla directory specificata, usa il livello di compressione e la codifica dei caratteri specificati per i nomi e i commenti delle voci 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);
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 viene interpretato come relativo alla directory di lavoro corrente.

destinationArchiveFileName
String

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

compressionLevel
CompressionLevel

Uno dei valori di enumerazione che indica se evidenziare l'efficacia della velocità o della compressione durante la creazione della voce.

includeBaseDirectory
Boolean

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

entryNameEncoding
Encoding

Codifica da utilizzare per la lettura o la scrittura di nomi e commenti di voci in questo archivio. Specificare un valore per questo parametro solo quando è necessaria una codifica per l'interoperabilità con gli strumenti e le librerie di archivio ZIP che non supportano la codifica UTF-8 per i nomi o i commenti delle voci.

Eccezioni

sourceDirectoryName o destinationArchiveFileName è Empty, contiene solo spazi vuoti o contiene 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 specificato, il nome del file o entrambi superano la lunghezza massima definita dal sistema.

sourceDirectoryName non è valido o non esiste (ad esempio, si trova in 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 necessaria per accedere alla directory specificata in sourceDirectoryName o al file specificato in destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato non valido.

oppure

L'archivio ZIP non supporta la scrittura.

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 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 da null, i nomi di voce e i commenti vengono codificati usando la codifica specificata. Se la codifica specificata è una codifica UTF-8, il flag di codifica della lingua (nel flag di bit generico dell'intestazione del file locale) viene impostato per ogni voce.

Se entryNameEncoding è impostato su null, i nomi e i commenti delle voci vengono codificati in base alle regole seguenti:

  • Per i nomi di voce e i commenti che contengono caratteri esterni all'intervallo ASCII, viene impostato il flag di codifica della lingua e viene usato UTF-8 per codificare il nome e il commento della voce.

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

Si applica a