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 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
entryNameEncodingspé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.