Condividi tramite


ZipFile.Open Metodo

Definizione

Apre un archivio ZIP in corrispondenza del percorso specificato e nella modalità specificata.

Overload

Open(String, ZipArchiveMode, Encoding)

Apre un archivio ZIP nel percorso specificato, nella modalità specificata e utilizzando la codifica dei caratteri specificata per i nomi delle voci.

Open(String, ZipArchiveMode)

Apre un archivio ZIP in corrispondenza del percorso specificato e nella modalità specificata.

Open(String, ZipArchiveMode, Encoding)

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

Apre un archivio ZIP nel percorso specificato, nella modalità specificata e utilizzando la codifica dei caratteri specificata per i nomi delle voci.

public:
 static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode, System::Text::Encoding ^ entryNameEncoding);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding? entryNameEncoding);
static member Open : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding) As ZipArchive

Parametri

archiveFileName
String

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

mode
ZipArchiveMode

Uno dei valori di enumerazione che specifica le azioni consentite nelle voci dell'archivio aperto.

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.

Restituisce

Archivio ZIP aperto.

Eccezioni

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

-oppure-

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

archiveFileName è null.

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

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

Impossibile aprire archiveFileName.

-oppure-

mode è impostato su Create, ma il file specificato in archiveFileName esiste già.

-oppure-

Si è verificato un errore di I/O non specificato durante l'apertura del file.

archiveFileName specifica una directory.

-oppure-

Il chiamante non dispone dell'autorizzazione richiesta per accedere al file specificato in archiveFileName.

mode specifica un valore non valido.

mode è impostato su Read, ma il file specificato in archiveFileName non è stato trovato.

archiveFileName o contiene un formato non valido.

archiveFileName potrebbe non essere interpretato come un archivio ZIP.

-oppure-

mode è Update, ma una voce è assente o danneggiata e non può essere letta.

-oppure-

mode è Update, ma una voce è troppo grande per essere contenuta nella memoria.

Commenti

Quando si imposta il parametro su Read, l'archivio mode viene aperto FileMode.Open con come valore della modalità file. Se l'archivio non esiste, viene generata un'eccezione FileNotFoundException . L'impostazione del mode parametro su Read equivale a chiamare il OpenRead metodo.

Quando si imposta il parametro su Create, l'archivio mode viene aperto FileMode.CreateNew con come valore della modalità file. Se l'archivio esiste già, viene generato un IOException oggetto.

Quando si imposta il parametro su Update, l'archivio mode viene aperto FileMode.OpenOrCreate con come valore della modalità file. Se l'archivio esiste, viene aperto. È possibile modificare le voci esistenti e creare nuove voci. Se l'archivio non esiste, viene creato un nuovo archivio; tuttavia, la creazione di un archivio zip in Update modalità non è efficiente come crearla in Create modalità.

Quando si apre un file di archivio zip per la lettura ed entryNameEncoding è impostato su null, i nomi di voce vengono decodificati in base alle regole seguenti:

  • Quando il flag di codifica del linguaggio (nel flag a bit generico dell'intestazione del file locale) non è impostato, la tabella codici predefinita del sistema corrente viene usata per decodificare il nome della voce.

  • Quando viene impostato il flag di codifica del linguaggio, viene usato UTF-8 per decodificare il nome della voce.

Quando si apre un file di archivio zip per la lettura e entryNameEncoding viene impostato su un valore diverso nullda , i nomi di voce vengono decodificati in base alle regole seguenti:

  • Quando il flag di codifica del linguaggio non è impostato, viene entryNameEncoding usato per decodificare il nome della voce.

  • Quando viene impostato il flag di codifica del linguaggio, viene usato UTF-8 per decodificare il nome della voce.

Quando si scrive nei file di archiviazione ed 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 i nomi di voce vengono codificati usando UTF-8.

  • Per i nomi di voce che contengono solo caratteri ASCII, il flag di codifica del linguaggio non è impostato e i nomi di voce vengono codificati usando la tabella codici predefinita del sistema corrente.

Quando si scrive in file di archiviazione e entryNameEncoding viene impostato su un valore diverso nullda , viene entryNameEncoding usato per codificare i nomi di voce in byte. Il flag di codifica del linguaggio (nel flag a bit generico dell'intestazione del file locale) viene impostato solo quando la codifica specificata è una codifica UTF-8.

Si applica a

Open(String, ZipArchiveMode)

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

Apre un archivio ZIP in corrispondenza del percorso specificato e nella modalità specificata.

public:
 static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode);
public static System.IO.Compression.ZipArchive Open (string archiveFileName, System.IO.Compression.ZipArchiveMode mode);
static member Open : string * System.IO.Compression.ZipArchiveMode -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode) As ZipArchive

Parametri

archiveFileName
String

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

mode
ZipArchiveMode

Uno dei valori di enumerazione che specifica le azioni consentite nelle voci dell'archivio aperto.

Restituisce

Archivio ZIP aperto.

Eccezioni

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

archiveFileName è null.

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

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

Impossibile aprire archiveFileName.

-oppure-

mode è impostato su Create, ma il file specificato in archiveFileName esiste già.

-oppure-

Si è verificato un errore di I/O non specificato durante l'apertura del file.

archiveFileName specifica una directory.

-oppure-

Il chiamante non dispone dell'autorizzazione richiesta per accedere al file specificato in archiveFileName.

mode specifica un valore non valido.

mode è impostato su Read, ma il file specificato in archiveFileName non è stato trovato.

archiveFileName o contiene un formato non valido.

archiveFileName potrebbe non essere interpretato come un archivio ZIP.

-oppure-

mode è Update, ma una voce è assente o danneggiata e non può essere letta.

-oppure-

mode è Update, ma una voce è troppo grande per essere contenuta nella memoria.

Esempio

Nell'esempio seguente viene illustrato come aprire un archivio zip nella modalità di aggiornamento e aggiungere una voce all'archivio.

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);
            }
        }
    }
}
open System.IO.Compression

let zipPath = @"c:\users\exampleuser\start.zip"
let extractPath = @"c:\users\exampleuser\extract"
let newFile = @"c:\users\exampleuser\NewFile.txt"

do
    use archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
    archive.CreateEntryFromFile(newFile, "NewEntry.txt") |> ignore
    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

Commenti

Quando si imposta il parametro su Read, l'archivio mode viene aperto con Open dall'enumerazione FileMode come valore della modalità file. Se l'archivio non esiste, viene generata un'eccezione FileNotFoundException . L'impostazione del mode parametro su Read equivale a chiamare il OpenRead metodo.

Quando si imposta il parametro su Create, l'archivio mode viene aperto FileMode.CreateNew con come valore della modalità file. Se l'archivio esiste già, viene generato un IOException oggetto.

Quando si imposta il parametro su Update, l'archivio mode viene aperto FileMode.OpenOrCreate con come valore della modalità file. Se l'archivio esiste, viene aperto. È possibile modificare le voci esistenti e creare nuove voci. Se l'archivio non esiste, viene creato un nuovo archivio; tuttavia, la creazione di un archivio zip in Update modalità non è efficiente come crearla in Create modalità.

Si applica a