ZipFile.Open Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 null
da , 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 null
da , 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à.