ZipFile.Open Yöntem

Tanım

Belirtilen yolda ve belirtilen modda bir zip arşivi açar.

Aşırı Yüklemeler

Open(String, ZipArchiveMode, Encoding)

Belirtilen yolda, belirtilen modda ve giriş adları için belirtilen karakter kodlamasını kullanarak bir zip arşivi açar.

Open(String, ZipArchiveMode)

Belirtilen yolda ve belirtilen modda bir zip arşivi açar.

Open(String, ZipArchiveMode, Encoding)

Kaynak:
ZipFile.Create.cs
Kaynak:
ZipFile.Create.cs
Kaynak:
ZipFile.Create.cs

Belirtilen yolda, belirtilen modda ve giriş adları için belirtilen karakter kodlamasını kullanarak bir zip arşivi açar.

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

Parametreler

archiveFileName
String

Açılacak arşivin yolu, göreli veya mutlak yol olarak belirtilir. Göreli yol, geçerli çalışma dizinine göre yorumlanır.

mode
ZipArchiveMode

Açılan arşivdeki girdilerde izin verilen eylemleri belirten numaralandırma değerlerinden biri.

entryNameEncoding
Encoding

Bu arşivdeki girdi adlarını okurken veya yazarken kullanılacak kodlama. Bu parametre için yalnızca giriş adları için UTF-8 kodlamasını desteklemeyen zip arşiv araçları ve kitaplıklarıyla birlikte çalışabilirlik için bir kodlama gerektiğinde bir değer belirtin.

Döndürülenler

Açılan zip arşivi.

Özel durumlar

archiveFileName , Emptyyalnızca boşluk içerir veya en az bir geçersiz karakter içerir.

-veya-

entryNameEncoding UTF-8 dışında bir Unicode kodlamasına ayarlanır.

archiveFileName, null değeridir.

içinde archiveFileName, belirtilen yol, dosya adı veya her ikisi de sistem tanımlı uzunluk üst sınırını aşıyor.

archiveFileName geçersiz veya mevcut değil (örneğin, eşlenmemiş bir sürücüde).

archiveFileName açılamadı.

-veya-

mode olarak ayarlanır Create, ancak içinde archiveFileName belirtilen dosya zaten var.

-veya-

Dosya açılırken belirtilmemiş bir G/Ç hatası oluştu.

archiveFileName bir dizin belirtir.

-veya-

Çağıranın içinde archiveFileNamebelirtilen dosyaya erişmek için gerekli izni yok.

mode geçersiz bir değer belirtir.

mode olarak ayarlanır Read, ancak içinde archiveFileName belirtilen dosya bulunamadı.

archiveFileName geçersiz bir biçim içeriyor.

archiveFileName zip arşivi olarak yorumlanamadı.

-veya-

mode , Updateancak bir girdi eksik veya bozuk ve okunamıyor.

-veya-

mode olur Update, ancak bir girdi belleğe sığamayacak kadar büyük.

Açıklamalar

parametresini modeReadolarak ayarladığınızda, arşiv ile FileMode.Open dosya modu değeri olarak açılır. Arşiv yoksa bir FileNotFoundException özel durum oluşturulur. parametresinin modeRead olarak ayarlanması, yöntemini çağırmaya OpenRead eşdeğerdir.

parametresini modeCreateolarak ayarladığınızda, arşiv ile FileMode.CreateNew dosya modu değeri olarak açılır. Arşiv zaten varsa, bir IOException oluşturulur.

parametresini modeUpdateolarak ayarladığınızda, arşiv ile FileMode.OpenOrCreate dosya modu değeri olarak açılır. Arşiv varsa açılır. Mevcut girdiler değiştirilebilir ve yeni girişler oluşturulabilir. Arşiv yoksa yeni bir arşiv oluşturulur; ancak, modda zip arşivi Update oluşturmak, bunu modda oluşturmak Create kadar verimli değildir.

Bir zip arşiv dosyasını okumak üzere açtığınızda ve entryNameEncoding olarak nullayarlandığında, giriş adları aşağıdaki kurallara göre çözülecek:

  • Dil kodlama bayrağı (yerel dosya üst bilgisinin genel amaçlı bit bayrağında) ayarlanmadığında, giriş adının kodunu çözmek için geçerli sistem varsayılan kod sayfası kullanılır.

  • Dil kodlama bayrağı ayarlandığında, girdi adının kodunu çözmek için UTF-8 kullanılır.

Okumak için zip arşiv dosyasını açtığınızda ve entryNameEncoding dışında nullbir değere ayarlandığında, giriş adları aşağıdaki kurallara göre çözülecek:

  • Dil kodlama bayrağı ayarlanmadığında, giriş adının kodunu çözmek için belirtilen entryNameEncoding kullanılır.

  • Dil kodlama bayrağı ayarlandığında, girdi adının kodunu çözmek için UTF-8 kullanılır.

Arşiv dosyalarına yazdığınızda ve entryNameEncoding olarak ayarlandığında null, giriş adları aşağıdaki kurallara göre kodlanır:

  • ASCII aralığının dışında karakterler içeren giriş adları için dil kodlama bayrağı ayarlanır ve giriş adları UTF-8 kullanılarak kodlanır.

  • Yalnızca ASCII karakterleri içeren giriş adları için dil kodlama bayrağı ayarlanmaz ve giriş adları geçerli sistem varsayılan kod sayfası kullanılarak kodlanır.

Arşiv dosyalarına yazdığınızda ve entryNameEncoding dışında nullbir değere ayarlandığında, belirtilen entryNameEncoding giriş adlarını bayt olarak kodlamak için kullanılır. Dil kodlama bayrağı (yerel dosya üst bilgisinin genel amaçlı bit bayrağında) yalnızca belirtilen kodlama bir UTF-8 kodlaması olduğunda ayarlanır.

Şunlara uygulanır

Open(String, ZipArchiveMode)

Kaynak:
ZipFile.Create.cs
Kaynak:
ZipFile.Create.cs
Kaynak:
ZipFile.Create.cs

Belirtilen yolda ve belirtilen modda bir zip arşivi açar.

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

Parametreler

archiveFileName
String

Açılacak arşivin yolu, göreli veya mutlak yol olarak belirtilir. Göreli yol, geçerli çalışma dizinine göre yorumlanır.

mode
ZipArchiveMode

Açılan arşivdeki girdilerde izin verilen eylemleri belirten numaralandırma değerlerinden biri.

Döndürülenler

Açılan zip arşivi.

Özel durumlar

archiveFileName , Emptyyalnızca boşluk içerir veya en az bir geçersiz karakter içerir.

archiveFileName, null değeridir.

içinde archiveFileName, belirtilen yol, dosya adı veya her ikisi de sistem tanımlı uzunluk üst sınırını aşıyor.

archiveFileName geçersiz veya mevcut değil (örneğin, eşlenmemiş bir sürücüde).

archiveFileName açılamadı.

-veya-

mode olarak ayarlanır Create, ancak içinde archiveFileName belirtilen dosya zaten var.

-veya-

Dosya açılırken belirtilmemiş bir G/Ç hatası oluştu.

archiveFileName bir dizin belirtir.

-veya-

Çağıranın içinde archiveFileNamebelirtilen dosyaya erişmek için gerekli izni yok.

mode geçersiz bir değer belirtir.

mode olarak ayarlanır Read, ancak içinde archiveFileName belirtilen dosya bulunamadı.

archiveFileName geçersiz bir biçim içeriyor.

archiveFileName zip arşivi olarak yorumlanamadı.

-veya-

mode , Updateancak bir girdi eksik veya bozuk ve okunamıyor.

-veya-

mode olur Update, ancak bir girdi belleğe sığamayacak kadar büyük.

Örnekler

Aşağıdaki örnekte, güncelleştirme modunda zip arşivi açma ve arşive giriş ekleme gösterilmektedir.

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

Açıklamalar

parametresini modeReadolarak ayarladığınızda arşiv, dosya modu değeri olarak sabit listesinden ile OpenFileMode açılır. Arşiv yoksa bir FileNotFoundException özel durum oluşturulur. parametresinin modeRead olarak ayarlanması, yöntemini çağırmaya OpenRead eşdeğerdir.

parametresini modeCreateolarak ayarladığınızda, arşiv ile FileMode.CreateNew dosya modu değeri olarak açılır. Arşiv zaten varsa, bir IOException oluşturulur.

parametresini modeUpdateolarak ayarladığınızda, arşiv ile FileMode.OpenOrCreate dosya modu değeri olarak açılır. Arşiv varsa açılır. Mevcut girdiler değiştirilebilir ve yeni girişler oluşturulabilir. Arşiv yoksa yeni bir arşiv oluşturulur; ancak, modda zip arşivi Update oluşturmak, bunu modda oluşturmak Create kadar verimli değildir.

Şunlara uygulanır