ZipFile.Open Metode

Definisi

Membuka arsip zip pada jalur yang ditentukan dan dalam mode yang ditentukan.

Overload

Nama Deskripsi
Open(String, ZipArchiveMode)

Membuka arsip zip pada jalur yang ditentukan dan dalam mode yang ditentukan.

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 dan komentar.

Open(String, ZipArchiveMode)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs
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 untuk 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 modeRead 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, maka IOException akan 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.

Berlaku untuk

Open(String, ZipArchiveMode, Encoding)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs
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 dan komentar.

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 untuk 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 dan komentar 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 atau komentar.

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 modeRead 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, maka IOException akan 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 dan komentar 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 dan komentar.
  • Ketika bendera pengodean bahasa diatur, UTF-8 digunakan untuk mendekode nama entri dan komentar.

Saat Anda membuka file arsip zip untuk dibaca dan entryNameEncoding diatur ke nilai selain null, nama entri dan komentar didekodekan sesuai dengan aturan berikut:

  • Ketika bendera pengodean bahasa tidak diatur, yang ditentukan entryNameEncoding digunakan untuk mendekode nama entri dan komentar.
  • Ketika bendera pengodean bahasa diatur, UTF-8 digunakan untuk mendekode nama entri dan komentar.

Ketika Anda menulis ke file arsip dan entryNameEncoding diatur ke null, nama entri dan komentar dikodekan sesuai dengan aturan berikut:

  • Untuk nama entri atau komentar yang berisi karakter di luar rentang ASCII, bendera pengodean bahasa diatur, dan nama entri dan komentar dikodekan dengan menggunakan UTF-8.
  • Untuk nama entri atau komentar yang hanya berisi karakter ASCII, bendera pengodean bahasa tidak diatur, dan nama entri dan komentar dikodekan dengan menggunakan halaman kode default sistem saat ini.

Saat Anda menulis ke file arsip dan entryNameEncoding diatur ke nilai selain null, yang ditentukan digunakan untuk mengodekan entryNameEncoding nama entri dan komentar 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