ZipFile.Open Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membuka arsip zip pada jalur yang ditentukan dan dalam mode yang ditentukan.
Overload
Open(String, ZipArchiveMode, Encoding) |
Membuka arsip zip di jalur yang ditentukan, dalam mode yang ditentukan, dan dengan menggunakan pengodean karakter yang ditentukan untuk nama entri. |
Open(String, ZipArchiveMode) |
Membuka arsip zip pada jalur yang ditentukan dan dalam mode yang ditentukan. |
Open(String, ZipArchiveMode, Encoding)
- Sumber:
- ZipFile.Create.cs
- Sumber:
- ZipFile.Create.cs
- Sumber:
- ZipFile.Create.cs
Membuka arsip zip di jalur yang ditentukan, dalam mode yang ditentukan, dan dengan menggunakan pengodean karakter yang ditentukan untuk nama entri.
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
Parameter
- archiveFileName
- String
Jalur ke arsip yang akan dibuka, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.
- mode
- ZipArchiveMode
Salah satu nilai enumerasi yang menentukan tindakan yang diizinkan pada entri dalam arsip yang dibuka.
- entryNameEncoding
- Encoding
Pengodean yang digunakan saat membaca atau menulis nama entri dalam arsip ini. Tentukan nilai untuk parameter ini hanya ketika pengodean diperlukan untuk interoperabilitas dengan alat arsip zip dan pustaka yang tidak mendukung pengodean UTF-8 untuk nama entri.
Mengembalikan
Arsip zip yang dibuka.
Pengecualian
archiveFileName
adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.
-atau-
entryNameEncoding
diatur ke pengodean Unicode selain UTF-8.
archiveFileName
adalah null
.
Dalam archiveFileName
, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.
archiveFileName
tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).
archiveFileName
tidak dapat dibuka.
-atau-
mode
diatur ke Create, tetapi file yang ditentukan di archiveFileName
sudah ada.
-atau-
Terjadi kesalahan I/O yang tidak ditentukan saat membuka file.
archiveFileName
menentukan direktori.
-atau-
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses file yang ditentukan dalam archiveFileName
.
mode
menentukan nilai yang tidak valid.
mode
diatur ke Read, tetapi file yang ditentukan di archiveFileName
tidak ditemukan.
archiveFileName
berisi format yang tidak valid.
archiveFileName
tidak dapat ditafsirkan sebagai arsip zip.
-atau-
mode
adalah Update, tetapi entri hilang atau rusak dan tidak dapat dibaca.
-atau-
mode
adalah Update, tetapi entri terlalu besar untuk masuk ke dalam memori.
Keterangan
Saat Anda mengatur mode
parameter ke Read, arsip dibuka dengan FileMode.Open sebagai nilai mode file. Jika arsip tidak ada, FileNotFoundException pengecualian akan dilemparkan. Mengatur parameter ke mode
Read setara dengan memanggil OpenRead metode .
Saat Anda mengatur mode
parameter ke Create, arsip dibuka dengan FileMode.CreateNew sebagai nilai mode file. Jika arsip sudah ada, akan IOException dilemparkan.
Saat Anda mengatur mode
parameter ke Update, arsip dibuka dengan FileMode.OpenOrCreate sebagai nilai mode file. Jika arsip ada, arsip akan dibuka. Entri yang ada dapat dimodifikasi dan entri baru dapat dibuat. Jika arsip tidak ada, arsip baru dibuat; namun, membuat arsip zip dalam Update mode tidak seefisien membuatnya dalam Create mode .
Saat Anda membuka file arsip zip untuk dibaca dan entryNameEncoding
diatur ke null
, nama entri didekodekan sesuai dengan aturan berikut:
Ketika bendera pengodean bahasa (dalam bendera bit tujuan umum header file lokal) tidak diatur, halaman kode default sistem saat ini digunakan untuk mendekode nama entri.
Ketika bendera pengodean bahasa diatur, UTF-8 digunakan untuk mendekode nama entri.
Saat Anda membuka file arsip zip untuk dibaca dan entryNameEncoding
diatur ke nilai selain null
, nama entri didekodekan sesuai dengan aturan berikut:
Ketika bendera pengodean bahasa tidak diatur, yang ditentukan
entryNameEncoding
digunakan untuk mendekode nama entri.Ketika bendera pengodean bahasa diatur, UTF-8 digunakan untuk mendekode nama entri.
Ketika Anda menulis ke file arsip dan entryNameEncoding
diatur ke null
, nama entri dikodekan sesuai dengan aturan berikut:
Untuk nama entri yang berisi karakter di luar rentang ASCII, bendera pengodean bahasa diatur, dan nama entri dikodekan dengan menggunakan UTF-8.
Untuk nama entri yang hanya berisi karakter ASCII, bendera pengodean bahasa tidak diatur, dan nama entri dikodekan dengan menggunakan halaman kode default sistem saat ini.
Ketika Anda menulis ke file arsip dan entryNameEncoding
diatur ke nilai selain null
, yang ditentukan digunakan untuk mengodekan entryNameEncoding
nama entri ke dalam byte. Bendera pengodean bahasa (dalam bendera bit tujuan umum header file lokal) diatur hanya ketika pengodean yang ditentukan adalah pengodean UTF-8.
Berlaku untuk
Open(String, ZipArchiveMode)
- Sumber:
- ZipFile.Create.cs
- Sumber:
- ZipFile.Create.cs
- Sumber:
- ZipFile.Create.cs
Membuka arsip zip pada jalur yang ditentukan dan dalam mode yang ditentukan.
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
Parameter
- archiveFileName
- String
Jalur ke arsip yang akan dibuka, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.
- mode
- ZipArchiveMode
Salah satu nilai enumerasi yang menentukan tindakan yang diizinkan pada entri dalam arsip yang dibuka.
Mengembalikan
Arsip zip yang dibuka.
Pengecualian
archiveFileName
adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.
archiveFileName
adalah null
.
Dalam archiveFileName
, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.
archiveFileName
tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).
archiveFileName
tidak dapat dibuka.
-atau-
mode
diatur ke Create, tetapi file yang ditentukan di archiveFileName
sudah ada.
-atau-
Terjadi kesalahan I/O yang tidak ditentukan saat membuka file.
archiveFileName
menentukan direktori.
-atau-
Pemanggil tidak memiliki izin yang diperlukan untuk mengakses file yang ditentukan dalam archiveFileName
.
mode
menentukan nilai yang tidak valid.
mode
diatur ke Read, tetapi file yang ditentukan di archiveFileName
tidak ditemukan.
archiveFileName
berisi format yang tidak valid.
archiveFileName
tidak dapat ditafsirkan sebagai arsip zip.
-atau-
mode
adalah Update, tetapi entri hilang atau rusak dan tidak dapat dibaca.
-atau-
mode
adalah Update, tetapi entri terlalu besar untuk masuk ke dalam memori.
Contoh
Contoh berikut menunjukkan cara membuka arsip zip dalam mode pembaruan dan menambahkan entri ke arsip.
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
Keterangan
Saat Anda mengatur mode
parameter ke Read, arsip dibuka dengan Open dari FileMode enumerasi sebagai nilai mode file. Jika arsip tidak ada, FileNotFoundException pengecualian akan dilemparkan. Mengatur parameter ke mode
Read setara dengan memanggil OpenRead metode .
Saat Anda mengatur mode
parameter ke Create, arsip dibuka dengan FileMode.CreateNew sebagai nilai mode file. Jika arsip sudah ada, akan IOException dilemparkan.
Saat Anda mengatur mode
parameter ke Update, arsip dibuka dengan FileMode.OpenOrCreate sebagai nilai mode file. Jika arsip ada, arsip akan dibuka. Entri yang ada dapat dimodifikasi dan entri baru dapat dibuat. Jika arsip tidak ada, arsip baru dibuat; namun, membuat arsip zip dalam Update mode tidak seefisien membuatnya dalam Create mode .