ZipFile.Open Méthode

Définition

Ouvre une archive zip au niveau du chemin d’accès spécifié et en mode spécifié.

Surcharges

Nom Description
Open(String, ZipArchiveMode)

Ouvre une archive zip au niveau du chemin d’accès spécifié et en mode spécifié.

Open(String, ZipArchiveMode, Encoding)

Ouvre une archive zip au niveau du chemin spécifié, en mode spécifié et en utilisant l’encodage de caractères spécifié pour les noms d’entrée et les commentaires.

Open(String, ZipArchiveMode)

Ouvre une archive zip au niveau du chemin d’accès spécifié et en mode spécifié.

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é en tant que chemin relatif ou absolu. Un chemin relatif est interprété comme relatif au répertoire de travail actuel.

mode
ZipArchiveMode

Une des valeurs d’énumération qui spécifie les actions autorisées sur les entrées de l’archive ouverte.

Retours

Archive zip ouverte.

Exceptions

archiveFileName est Empty, contient uniquement un espace blanc 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 de 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 impossible d’ouvrir.

-ou-

mode est défini sur Create, mais le fichier spécifié 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 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 s’adapter à 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 Readsur , l’archive est ouverte à Open partir de l’énumération FileMode comme valeur du mode fichier. Si l’archive n’existe pas, une FileNotFoundException exception est levée. La définition du mode paramètre Read équivaut à appeler la OpenRead méthode.

Lorsque vous définissez le mode paramètre Createsur , l’archive est ouverte en FileMode.CreateNew tant que valeur de mode fichier. Si l’archive existe déjà, une IOException exception est levée.

Lorsque vous définissez le mode paramètre Updatesur , l’archive est ouverte en FileMode.OpenOrCreate tant que valeur de mode 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 à

Open(String, ZipArchiveMode, Encoding)

Ouvre une archive zip au niveau du chemin spécifié, en mode spécifié et en utilisant l’encodage de caractères spécifié pour les noms d’entrée et les commentaires.

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);
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é en tant que chemin relatif ou absolu. Un chemin relatif est interprété comme relatif au répertoire de travail actuel.

mode
ZipArchiveMode

Une des valeurs d’énumération qui spécifie les actions autorisées sur les entrées de l’archive ouverte.

entryNameEncoding
Encoding

Encodage à utiliser lors de la lecture ou de l’écriture de noms et de commentaires d’entrée dans cette archive. Spécifiez une valeur pour ce paramètre uniquement lorsqu’un encodage est requis pour l’interopérabilité avec les outils et bibliothèques d’archive zip qui ne prennent pas en charge l’encodage UTF-8 pour les noms d’entrée ou les commentaires.

Retours

Archive zip ouverte.

Exceptions

archiveFileName est Empty, contient uniquement un espace blanc ou contient au moins un caractère non valide.

-ou-

entryNameEncoding est défini sur un encodage Unicode autre que UTF-8.

archiveFileName a la valeur null.

Dans archiveFileName, le chemin d’accès spécifié, le nom de 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 impossible d’ouvrir.

-ou-

mode est défini sur Create, mais le fichier spécifié 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 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 s’adapter à la mémoire.

Remarques

Lorsque vous définissez le mode paramètre Readsur , l’archive est ouverte en FileMode.Open tant que valeur de mode fichier. Si l’archive n’existe pas, une FileNotFoundException exception est levée. La définition du mode paramètre Read équivaut à appeler la OpenRead méthode.

Lorsque vous définissez le mode paramètre Createsur , l’archive est ouverte en FileMode.CreateNew tant que valeur de mode fichier. Si l’archive existe déjà, une IOException exception est levée.

Lorsque vous définissez le mode paramètre Updatesur , l’archive est ouverte en FileMode.OpenOrCreate tant que valeur de mode 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’archivage zip pour la lecture et entryNameEncoding est défini nullsur , les noms d’entrée et les commentaires sont décodés conformément aux règles suivantes :

  • Lorsque l’indicateur d’encodage de langue (dans l’indicateur de bits universel 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 et le commentaire d’entrée.
  • Lorsque l’indicateur d’encodage de langue est défini, UTF-8 est utilisé pour décoder le nom et le commentaire d’entrée.

Lorsque vous ouvrez un fichier d’archivage zip pour la lecture et entryNameEncoding est défini sur une valeur autre que null, les noms d’entrée et les commentaires sont décodés conformément aux règles suivantes :

  • Lorsque l’indicateur d’encodage de langue n’est pas défini, l’indicateur entryNameEncoding spécifié est utilisé pour décoder le nom et le commentaire d’entrée.
  • Lorsque l’indicateur d’encodage de langue est défini, UTF-8 est utilisé pour décoder le nom et le commentaire d’entrée.

Lorsque vous écrivez dans des fichiers d’archivage et entryNameEncoding que nullvous définissez sur , les noms d’entrée et les commentaires sont encodés en fonction des règles suivantes :

  • Pour les noms d’entrée ou les commentaires 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 et les commentaires sont encodés à l’aide de UTF-8.
  • Pour les noms d’entrée ou les commentaires qui contiennent uniquement des caractères ASCII, l’indicateur d’encodage de langue n’est pas défini et les noms d’entrée et les commentaires 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 que vous définissez sur une valeur autre que null, la valeur spécifiée entryNameEncoding est utilisée pour encoder les noms d’entrée et les commentaires en octets. L’indicateur d’encodage de langue (dans l’indicateur de bits universel de l’en-tête de fichier local) est défini uniquement lorsque l’encodage spécifié est un encodage UTF-8.

S’applique à