Partager via


ZipFile.Open Méthode

Définition

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 modeRead 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 modeRead 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.

S’applique à