ZipFile.Open Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 archiveFileName
belirtilen 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 mode
Readolarak 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 mode
Read olarak ayarlanması, yöntemini çağırmaya OpenRead eşdeğerdir.
parametresini mode
Createolarak 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 mode
Updateolarak 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 null
ayarlandığı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 null
bir 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 null
bir 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 archiveFileName
belirtilen 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 mode
Readolarak 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 mode
Read olarak ayarlanması, yöntemini çağırmaya OpenRead eşdeğerdir.
parametresini mode
Createolarak 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 mode
Updateolarak 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.