ZipFile.Open Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Ouvre une archive zip sur le chemin d'accès et dans le mode spécifiés.
Surcharges
Open(String, ZipArchiveMode, Encoding) |
Ouvre une archive ZIP au chemin d'accès spécifié, dans le mode spécifié, et avec un encodage de caractères spécifié pour les noms d'entrée. |
Open(String, ZipArchiveMode) |
Ouvre une archive zip sur le chemin d'accès et dans le mode spécifiés. |
Open(String, ZipArchiveMode, Encoding)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
Ouvre une archive ZIP au chemin d'accès spécifié, dans le mode spécifié, et avec un encodage de caractères spécifié pour les noms d'entrée.
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
Paramètres
- archiveFileName
- String
Chemin d'accès à l'archive à ouvrir, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.
- mode
- ZipArchiveMode
L'une des valeurs d'énumération qui spécifie les actions qui sont autorisées sur les entrées de l'archive ouverte.
- entryNameEncoding
- Encoding
Encodage à utiliser lors de la lecture ou de l'écriture des noms d'entrée dans cette archive. Spécifie une valeur pour ce paramètre uniquement lorsqu'un encodage est obligatoire pour l'interopérabilité avec les outils et les bibliothèques d'archivage de zip qui ne prennent pas en charge l'encodage UTF-8 pour les noms d'entrée.
Retours
Archive zip ouverte.
Exceptions
archiveFileName
est Empty, ne contient que des espaces blancs ou contient au moins un caractère non valide.
- ou -
entryNameEncoding
a pour valeur un encodage Unicode autre qu’UTF-8.
archiveFileName
a la valeur null
.
Dans archiveFileName
, le chemin d’accès spécifié, le nom du fichier, ou les deux, dépassent la longueur maximale définie par le système.
archiveFileName
n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).
archiveFileName
n’a pas pu être ouvert.
- ou -
mode
est défini sur Create, mais le fichier spécifié dans le archiveFileName
existe déjà.
- ou -
Une erreur d’E/S non spécifiée s’est produite lors de l’ouverture du fichier.
archiveFileName
spécifie un répertoire.
- ou -
L’appelant n’a pas l’autorisation requise pour accéder au fichier spécifié dans archiveFileName
.
mode
spécifie une valeur non valide.
mode
est défini sur Read, mais le fichier spécifié dans le archiveFileName
est introuvable.
archiveFileName
contient un format non valide.
archiveFileName
n’a pas pu être interprété comme une archive ZIP.
- ou -
mode
est Update, mais une entrée est manquante ou endommagée et ne peut pas être lue.
- ou -
mode
est Update, mais une entrée est trop grande pour être contenue dans la mémoire.
Remarques
Lorsque vous définissez le mode
paramètre sur Read, l’archive est ouverte avec FileMode.Open comme valeur de mode de fichier. Si l’archive n’existe pas, une FileNotFoundException exception est levée. Définir le paramètre sur mode
Read revient à appeler la OpenRead méthode .
Lorsque vous définissez le mode
paramètre sur Create, l’archive est ouverte avec FileMode.CreateNew comme valeur de mode de fichier. Si l’archive existe déjà, une IOException est levée.
Lorsque vous définissez le mode
paramètre sur Update, l’archive est ouverte avec FileMode.OpenOrCreate comme valeur de mode de fichier. Si l’archive existe, elle est ouverte. Les entrées existantes peuvent être modifiées et de nouvelles entrées peuvent être créées. Si l’archive n’existe pas, une nouvelle archive est créée ; Toutefois, la création d’une archive zip en Update mode n’est pas aussi efficace que sa création en Create mode.
Lorsque vous ouvrez un fichier d’archive zip pour la lecture et entryNameEncoding
que est défini sur null
, les noms d’entrée sont décodés selon les règles suivantes :
Lorsque l’indicateur d’encodage de langue (dans l’indicateur de bits à usage général de l’en-tête de fichier local) n’est pas défini, la page de codes système par défaut actuelle est utilisée pour décoder le nom de l’entrée.
Lorsque l’indicateur d’encodage de langue est défini, UTF-8 est utilisé pour décoder le nom de l’entrée.
Lorsque vous ouvrez un fichier d’archive zip à des fins de lecture et entryNameEncoding
que est défini sur une valeur autre que null
, les noms d’entrée sont décodés conformément aux règles suivantes :
Lorsque l’indicateur d’encodage de langue n’est pas défini, le spécifié
entryNameEncoding
est utilisé pour décoder le nom de l’entrée.Lorsque l’indicateur d’encodage de langue est défini, UTF-8 est utilisé pour décoder le nom de l’entrée.
Lorsque vous écrivez dans des fichiers d’archivage et entryNameEncoding
que est défini sur null
, les noms d’entrée sont encodés selon les règles suivantes :
Pour les noms d’entrée qui contiennent des caractères en dehors de la plage ASCII, l’indicateur d’encodage de langue est défini et les noms d’entrée sont encodés à l’aide de UTF-8.
Pour les noms d’entrée qui contiennent uniquement des caractères ASCII, l’indicateur d’encodage de langue n’est pas défini et les noms d’entrée sont encodés à l’aide de la page de codes système par défaut actuelle.
Lorsque vous écrivez dans des fichiers d’archivage et entryNameEncoding
est défini sur une valeur autre que null
, le spécifié entryNameEncoding
est utilisé pour encoder les noms d’entrée en octets. L’indicateur d’encodage de langue (dans l’indicateur de bits à usage général de l’en-tête de fichier local) est défini uniquement lorsque l’encodage spécifié est un encodage UTF-8.
S’applique à
Open(String, ZipArchiveMode)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
Ouvre une archive zip sur le chemin d'accès et dans le mode spécifiés.
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
Paramètres
- archiveFileName
- String
Chemin d'accès à l'archive à ouvrir, spécifié sous forme de chemin d'accès relatif ou absolu. Un chemin d’accès relatif est interprété comme étant relatif au répertoire de travail actif.
- mode
- ZipArchiveMode
L'une des valeurs d'énumération qui spécifie les actions qui sont autorisées sur les entrées de l'archive ouverte.
Retours
Archive zip ouverte.
Exceptions
archiveFileName
est Empty, ne contient que des espaces blancs ou contient au moins un caractère non valide.
archiveFileName
a la valeur null
.
Dans archiveFileName
, le chemin d’accès spécifié, le nom du fichier, ou les deux, dépassent la longueur maximale définie par le système.
archiveFileName
n’est pas valide ou n’existe pas (par exemple, il se trouve sur un lecteur non mappé).
archiveFileName
n’a pas pu être ouvert.
- ou -
mode
est défini sur Create, mais le fichier spécifié dans le archiveFileName
existe déjà.
- ou -
Une erreur d’E/S non spécifiée s’est produite lors de l’ouverture du fichier.
archiveFileName
spécifie un répertoire.
- ou -
L’appelant n’a pas l’autorisation requise pour accéder au fichier spécifié dans archiveFileName
.
mode
spécifie une valeur non valide.
mode
est défini sur Read, mais le fichier spécifié dans le archiveFileName
est introuvable.
archiveFileName
contient un format non valide.
archiveFileName
n’a pas pu être interprété comme une archive ZIP.
- ou -
mode
est Update, mais une entrée est manquante ou endommagée et ne peut pas être lue.
- ou -
mode
est Update, mais une entrée est trop grande pour être contenue dans la mémoire.
Exemples
L’exemple suivant montre comment ouvrir une archive zip en mode de mise à jour et ajouter une entrée à l’archive.
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
Remarques
Lorsque vous définissez le mode
paramètre sur Read, l’archive est ouverte avec à Open partir de l’énumération FileMode comme valeur de mode de fichier. Si l’archive n’existe pas, une FileNotFoundException exception est levée. Définir le paramètre sur mode
Read revient à appeler la OpenRead méthode .
Lorsque vous définissez le mode
paramètre sur Create, l’archive est ouverte avec FileMode.CreateNew comme valeur de mode de fichier. Si l’archive existe déjà, une IOException est levée.
Lorsque vous définissez le mode
paramètre sur Update, l’archive est ouverte avec FileMode.OpenOrCreate comme valeur de mode de fichier. Si l’archive existe, elle est ouverte. Les entrées existantes peuvent être modifiées et de nouvelles entrées peuvent être créées. Si l’archive n’existe pas, une nouvelle archive est créée ; Toutefois, la création d’une archive zip en Update mode n’est pas aussi efficace que sa création en Create mode.