ZipFile.Open Metodo

Definizione

Apre un archivio ZIP nel percorso specificato e nella modalità specificata.

Overload

Nome Descrizione
Open(String, ZipArchiveMode)

Apre un archivio ZIP nel percorso specificato e nella modalità specificata.

Open(String, ZipArchiveMode, Encoding)

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

Open(String, ZipArchiveMode)

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

Apre un archivio ZIP nel 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 viene interpretato come relativo alla directory di lavoro corrente.

mode
ZipArchiveMode

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

Valori restituiti

Archivio ZIP aperto.

Eccezioni

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

archiveFileName è null.

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

archiveFileName non è valido o non esiste (ad esempio, si trova in un'unità non mappata).

archiveFileName non è stato possibile aprire.

oppure

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

oppure

Errore di I/O non specificato durante l'apertura del file.

archiveFileName specifica una directory.

oppure

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

mode specifica un valore non valido.

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

archiveFileName contiene un formato non valido.

archiveFileName non può essere interpretato come archivio ZIP.

oppure

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

oppure

mode è Update, ma una voce è troppo grande per adattarsi alla memoria.

Esempio

Nell'esempio seguente viene illustrato come aprire un archivio ZIP in 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 mode parametro su Read, l'archivio 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 mode parametro su Create, l'archivio viene aperto con FileMode.CreateNew come valore della modalità file. Se l'archivio esiste già, viene generata un'eccezione IOException .

Quando si imposta il mode parametro su Update, l'archivio viene aperto con FileMode.OpenOrCreate 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 è altrettanto efficiente come la creazione in Create modalità.

Si applica a

Open(String, ZipArchiveMode, Encoding)

Origine:
ZipFile.Create.cs
Origine:
ZipFile.Create.cs
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 e i commenti 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 viene interpretato come relativo alla directory di lavoro corrente.

mode
ZipArchiveMode

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

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.

Valori restituiti

Archivio ZIP aperto.

Eccezioni

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

oppure

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

archiveFileName è null.

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

archiveFileName non è valido o non esiste (ad esempio, si trova in un'unità non mappata).

archiveFileName non è stato possibile aprire.

oppure

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

oppure

Errore di I/O non specificato durante l'apertura del file.

archiveFileName specifica una directory.

oppure

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

mode specifica un valore non valido.

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

archiveFileName contiene un formato non valido.

archiveFileName non può essere interpretato come archivio ZIP.

oppure

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

oppure

mode è Update, ma una voce è troppo grande per adattarsi alla memoria.

Commenti

Quando si imposta il mode parametro su Read, l'archivio viene aperto con FileMode.Open 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 mode parametro su Create, l'archivio viene aperto con FileMode.CreateNew come valore della modalità file. Se l'archivio esiste già, viene generata un'eccezione IOException .

Quando si imposta il mode parametro su Update, l'archivio viene aperto con FileMode.OpenOrCreate 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 è altrettanto efficiente come la creazione in Create modalità.

Quando si apre un file di archivio ZIP per la lettura e entryNameEncoding viene impostato su null, i nomi delle voci e i commenti vengono decodificati in base alle regole seguenti:

  • Quando il flag di codifica della lingua (nel flag di bit generico dell'intestazione del file locale) non è impostato, la tabella codici predefinita del sistema corrente viene usata per decodificare il nome e il commento della voce.
  • Quando viene impostato il flag di codifica della lingua, viene usato UTF-8 per decodificare il nome e il commento della voce.

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

  • Quando il flag di codifica della lingua non è impostato, l'oggetto specificato entryNameEncoding viene usato per decodificare il nome e il commento della voce.
  • Quando viene impostato il flag di codifica della lingua, viene usato UTF-8 per decodificare il nome e il commento della voce.

Quando si scrive nei file di archiviazione e entryNameEncoding viene impostato su null, i nomi delle voci e i commenti vengono codificati in base alle regole seguenti:

  • Per i nomi di voce o i commenti che contengono caratteri esterni all'intervallo ASCII, viene impostato il flag di codifica della lingua e i nomi e i commenti delle voci vengono codificati tramite UTF-8.
  • Per i nomi di voce o i commenti che contengono solo caratteri ASCII, il flag di codifica della lingua non è impostato e i nomi e i commenti delle voci vengono codificati usando la tabella codici predefinita del sistema corrente.

Quando si scrive nei file di archiviazione e entryNameEncoding viene impostato su un valore diverso da null, l'oggetto specificato entryNameEncoding viene usato per codificare i nomi di voce e i commenti in byte. Il flag di codifica della lingua (nel flag di bit generico dell'intestazione del file locale) viene impostato solo quando la codifica specificata è una codifica UTF-8.

Si applica a