ZipFile.Open Metod

Definition

Öppnar ett zip-arkiv på den angivna sökvägen och i angivet läge.

Överlagringar

Name Description
Open(String, ZipArchiveMode)

Öppnar ett zip-arkiv på den angivna sökvägen och i angivet läge.

Open(String, ZipArchiveMode, Encoding)

Öppnar ett zip-arkiv på den angivna sökvägen, i det angivna läget och genom att använda den angivna teckenkodningen för postnamn och kommentarer.

Open(String, ZipArchiveMode)

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Öppnar ett zip-arkiv på den angivna sökvägen och i angivet läge.

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

Parametrar

archiveFileName
String

Sökvägen till arkivet som ska öppnas, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

mode
ZipArchiveMode

Ett av uppräkningsvärdena som anger de åtgärder som tillåts för posterna i det öppnade arkivet.

Returer

Det öppnade zip-arkivet.

Undantag

archiveFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

archiveFileName är null.

I archiveFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

archiveFileName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

archiveFileName kunde inte öppnas.

-eller-

mode är inställt på Create, men filen som anges i archiveFileName finns redan.

-eller-

Ett ospecificerat I/O-fel uppstod när filen öppnades.

archiveFileName anger en katalog.

-eller-

Anroparen har inte den behörighet som krävs för att komma åt filen som anges i archiveFileName.

mode anger ett ogiltigt värde.

mode är inställt på Read, men filen som anges i archiveFileName hittades inte.

archiveFileName innehåller ett ogiltigt format.

archiveFileName kunde inte tolkas som ett zip-arkiv.

-eller-

mode är Update, men en post saknas eller är skadad och kan inte läsas.

-eller-

mode är Update, men en post är för stor för att få plats i minnet.

Exempel

I följande exempel visas hur du öppnar ett zip-arkiv i uppdateringsläget och lägger till en post i arkivet.

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

Kommentarer

När du anger parametern mode till Readöppnas arkivet med Open från FileMode uppräkningen som fillägesvärde. Om arkivet inte finns genereras ett FileNotFoundException undantag. Att ange parametern mode till Read motsvarar att anropa OpenRead metoden.

När du anger parametern mode till Createöppnas arkivet med FileMode.CreateNew som fillägesvärde. Om arkivet redan finns genereras en IOException .

När du anger parametern mode till Updateöppnas arkivet med FileMode.OpenOrCreate som fillägesvärde. Om arkivet finns öppnas det. Befintliga poster kan ändras och nya poster kan skapas. Om arkivet inte finns skapas ett nytt arkiv. Men att skapa ett zip-arkiv i Update läge är inte lika effektivt som att skapa det i Create läge.

Gäller för

Open(String, ZipArchiveMode, Encoding)

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Öppnar ett zip-arkiv på den angivna sökvägen, i det angivna läget och genom att använda den angivna teckenkodningen för postnamn och kommentarer.

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

Parametrar

archiveFileName
String

Sökvägen till arkivet som ska öppnas, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

mode
ZipArchiveMode

Ett av uppräkningsvärdena som anger de åtgärder som tillåts för posterna i det öppnade arkivet.

entryNameEncoding
Encoding

Kodningen som ska användas vid läsning eller skrivning av postnamn och kommentarer i det här arkivet. Ange endast ett värde för den här parametern när en kodning krävs för samverkan med zip-arkivverktyg och bibliotek som inte stöder UTF-8-kodning för postnamn eller kommentarer.

Returer

Det öppnade zip-arkivet.

Undantag

archiveFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

-eller-

entryNameEncoding är inställt på en Unicode-kodning som inte är UTF-8.

archiveFileName är null.

I archiveFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

archiveFileName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

archiveFileName kunde inte öppnas.

-eller-

mode är inställt på Create, men filen som anges i archiveFileName finns redan.

-eller-

Ett ospecificerat I/O-fel uppstod när filen öppnades.

archiveFileName anger en katalog.

-eller-

Anroparen har inte den behörighet som krävs för att komma åt filen som anges i archiveFileName.

mode anger ett ogiltigt värde.

mode är inställt på Read, men filen som anges i archiveFileName hittades inte.

archiveFileName innehåller ett ogiltigt format.

archiveFileName kunde inte tolkas som ett zip-arkiv.

-eller-

mode är Update, men en post saknas eller är skadad och kan inte läsas.

-eller-

mode är Update, men en post är för stor för att få plats i minnet.

Kommentarer

När du anger parametern mode till Readöppnas arkivet med FileMode.Open som fillägesvärde. Om arkivet inte finns genereras ett FileNotFoundException undantag. Att ange parametern mode till Read motsvarar att anropa OpenRead metoden.

När du anger parametern mode till Createöppnas arkivet med FileMode.CreateNew som fillägesvärde. Om arkivet redan finns genereras en IOException .

När du anger parametern mode till Updateöppnas arkivet med FileMode.OpenOrCreate som fillägesvärde. Om arkivet finns öppnas det. Befintliga poster kan ändras och nya poster kan skapas. Om arkivet inte finns skapas ett nytt arkiv. Men att skapa ett zip-arkiv i Update läge är inte lika effektivt som att skapa det i Create läge.

När du öppnar en zip-arkivfil för läsning och entryNameEncoding är inställd på nullavkodas postnamn och kommentarer enligt följande regler:

  • När språkkodningsflaggan (i den allmänna bitflaggan för det lokala filhuvudet) inte har angetts används systemets aktuella standardkodsida för att avkoda postens namn och kommentar.
  • När språkkodningsflaggan har angetts används UTF-8 för att avkoda postnamnet och kommentaren.

När du öppnar en zip-arkivfil för läsning och entryNameEncoding är inställd på ett annat värde än null, avkodas postnamn och kommentarer enligt följande regler:

  • När språkkodningsflaggan inte har angetts används den angivna entryNameEncoding för att avkoda postnamnet och kommentaren.
  • När språkkodningsflaggan har angetts används UTF-8 för att avkoda postnamnet och kommentaren.

När du skriver till arkivfiler och entryNameEncoding är inställd på nullkodas postnamn och kommentarer enligt följande regler:

  • För postnamn eller kommentarer som innehåller tecken utanför ASCII-intervallet anges språkkodningsflaggan och postnamn och kommentarer kodas med HJÄLP av UTF-8.
  • För postnamn eller kommentarer som endast innehåller ASCII-tecken anges inte språkkodningsflaggan och postnamn och kommentarer kodas med hjälp av systemets aktuella standardkodsida.

När du skriver till arkivfiler och entryNameEncoding är inställd på ett annat värde än nullanvänds den angivna entryNameEncoding för att koda postnamnen och kommentarerna till byte. Språkkodningsflaggan (i den allmänna bitflaggan för det lokala filhuvudet) anges endast när den angivna kodningen är en UTF-8-kodning.

Gäller för