Bagikan melalui


ZipFile.CreateFromDirectory Metode

Definisi

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan.

Overload

CreateFromDirectory(String, Stream)

Membuat arsip zip di aliran yang ditentukan yang berisi file dan direktori dari direktori yang ditentukan.

CreateFromDirectory(String, String)

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Membuat arsip zip di aliran yang ditentukan yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi yang ditentukan, dan secara opsional menyertakan direktori dasar.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi yang ditentukan, dan secara opsional menyertakan direktori dasar.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean, Encoding)

Membuat arsip zip di aliran yang ditentukan yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi dan pengodean karakter yang ditentukan untuk nama entri, dan secara opsional menyertakan direktori dasar.

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi dan pengodean karakter yang ditentukan untuk nama entri, dan secara opsional menyertakan direktori dasar.

CreateFromDirectory(String, Stream)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs

Membuat arsip zip di aliran yang ditentukan yang berisi file dan direktori dari direktori yang ditentukan.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination);
static member CreateFromDirectory : string * System.IO.Stream -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream)

Parameter

sourceDirectoryName
String

Jalur ke direktori yang akan diarsipkan, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

destination
Stream

Aliran tempat arsip zip akan disimpan.

Pengecualian

sourceDirectoryName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

-atau-

Aliran destination tidak mendukung penulisan.

sourceDirectoryName atau destination adalah null.

Di sourceDirectoryName jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceDirectoryName tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).

File dalam direktori yang ditentukan tidak dapat dibuka.

-atau-

Terjadi kesalahan I/O saat membuka file yang akan diarsipkan.

sourceDirectoryName berisi format yang tidak valid.

Keterangan

Struktur direktori dari sistem file dipertahankan dalam arsip. Jika direktori kosong, arsip kosong akan dibuat. Metode ini kelebihan beban tidak termasuk direktori dasar dalam arsip dan tidak memungkinkan Anda menentukan tingkat kompresi. Jika Anda ingin menyertakan direktori dasar atau menentukan tingkat kompresi, panggil CreateFromDirectory(String, Stream, CompressionLevel, Boolean) metode kelebihan beban. Jika file dalam direktori tidak dapat ditambahkan ke arsip, arsip dibiarkan tidak lengkap dan tidak valid, dan metode melemparkan IOException pengecualian.

Berlaku untuk

CreateFromDirectory(String, String)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
static member CreateFromDirectory : string * string -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String)

Parameter

sourceDirectoryName
String

Jalur ke direktori yang akan diarsipkan, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

destinationArchiveFileName
String

Jalur arsip yang akan dibuat, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

Pengecualian

sourceDirectoryName atau destinationArchiveFileName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

sourceDirectoryName atau destinationArchiveFileName adalah null.

Dalam sourceDirectoryName atau destinationArchiveFileName, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceDirectoryName tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).

destinationArchiveFileName sudah ada.

-atau-

File dalam direktori yang ditentukan tidak dapat dibuka.

-atau-

Terjadi kesalahan I/O saat membuka file yang akan diarsipkan.

destinationArchiveFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori yang ditentukan di sourceDirectoryName atau file yang ditentukan dalam destinationArchiveFileName.

sourceDirectoryName atau destinationArchiveFileName berisi format yang tidak valid.

-atau-

Arsip zip tidak mendukung penulisan.

Contoh

Contoh ini menunjukkan cara membuat dan mengekstrak arsip zip dengan menggunakan ZipFile kelas . Ini memadatkan konten folder ke dalam arsip zip, lalu mengekstrak konten tersebut ke folder baru. Untuk menggunakan ZipFile kelas , Anda harus mereferensikan assembly System.IO.Compression.FileSystem dalam proyek Anda.

using System;
using System.IO.Compression;

class Program
{
    static void Main(string[] args)
    {
        string startPath = @".\start";
        string zipPath = @".\result.zip";
        string extractPath = @".\extract";

        ZipFile.CreateFromDirectory(startPath, zipPath);

        ZipFile.ExtractToDirectory(zipPath, extractPath);
    }
}
open System.IO.Compression

let startPath = @".\start"
let zipPath = @".\result.zip"
let extractPath = @".\extract"

ZipFile.CreateFromDirectory(startPath, zipPath)

ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = ".\start"
        Dim zipPath As String = ".\result.zip"
        Dim extractPath As String = ".\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

Keterangan

Struktur direktori dari sistem file dipertahankan dalam arsip. Jika direktori kosong, arsip kosong akan dibuat. Metode ini kelebihan beban tidak termasuk direktori dasar dalam arsip dan tidak memungkinkan Anda menentukan tingkat kompresi. Jika Anda ingin menyertakan direktori dasar atau menentukan tingkat kompresi, panggil CreateFromDirectory(String, String, CompressionLevel, Boolean) metode kelebihan beban.

Jika arsip sudah ada, IOException pengecualian akan dilemparkan. Jika entri dengan nama yang ditentukan sudah ada di arsip, entri kedua dibuat dengan nama yang identik.

Jika file dalam direktori tidak dapat ditambahkan ke arsip, arsip dibiarkan tidak lengkap dan tidak valid, dan metode melemparkan IOException pengecualian.

Berlaku untuk

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs

Membuat arsip zip di aliran yang ditentukan yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi yang ditentukan, dan secara opsional menyertakan direktori dasar.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)

Parameter

sourceDirectoryName
String

Jalur ke direktori yang akan diarsipkan, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

destination
Stream

Aliran tempat arsip zip akan disimpan.

compressionLevel
CompressionLevel

Salah satu nilai enumerasi yang menunjukkan apakah akan menekankan kecepatan atau efektivitas kompresi saat membuat entri.

includeBaseDirectory
Boolean

true untuk menyertakan nama direktori dari sourceDirectoryName di akar arsip; false untuk menyertakan hanya konten direktori.

Pengecualian

sourceDirectoryName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

-atau-

Aliran destination tidak mendukung penulisan.

sourceDirectoryName atau destination adalah null.

Di sourceDirectoryName jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceDirectoryName tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).

File dalam direktori yang ditentukan tidak dapat dibuka.

-atau-

Terjadi kesalahan I/O saat membuka file yang akan diarsipkan.

sourceDirectoryName berisi format yang tidak valid.

compressionLevel bukan nilai yang valid CompressionLevel .

Keterangan

Struktur direktori dari sistem file dipertahankan dalam arsip. Jika direktori kosong, arsip kosong akan dibuat. Gunakan metode ini kelebihan beban untuk menentukan tingkat kompresi dan apakah akan menyertakan direktori dasar dalam arsip. Jika file dalam direktori tidak dapat ditambahkan ke arsip, arsip dibiarkan tidak lengkap dan tidak valid, dan metode melemparkan IOException pengecualian.

Berlaku untuk

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi yang ditentukan, dan secara opsional menyertakan direktori dasar.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)

Parameter

sourceDirectoryName
String

Jalur ke direktori yang akan diarsipkan, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

destinationArchiveFileName
String

Jalur arsip yang akan dibuat, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

compressionLevel
CompressionLevel

Salah satu nilai enumerasi yang menunjukkan apakah akan menekankan kecepatan atau efektivitas kompresi saat membuat entri.

includeBaseDirectory
Boolean

true untuk menyertakan nama direktori dari sourceDirectoryName di akar arsip; false untuk menyertakan hanya konten direktori.

Pengecualian

sourceDirectoryName atau destinationArchiveFileName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

sourceDirectoryName atau destinationArchiveFileName adalah null.

Dalam sourceDirectoryName atau destinationArchiveFileName, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceDirectoryName tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).

destinationArchiveFileName sudah ada.

-atau-

File dalam direktori yang ditentukan tidak dapat dibuka.

-atau-

Terjadi kesalahan I/O saat membuka file yang akan diarsipkan.

destinationArchiveFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori yang ditentukan di sourceDirectoryName atau file yang ditentukan dalam destinationArchiveFileName.

sourceDirectoryName atau destinationArchiveFileName berisi format yang tidak valid.

-atau-

Arsip zip tidak mendukung penulisan.

Contoh

Contoh ini menunjukkan cara membuat dan mengekstrak arsip zip dengan menggunakan ZipFile kelas . Ini memadatkan konten folder ke dalam arsip zip, lalu mengekstrak konten tersebut ke folder baru. Saat mengompresi arsip, direktori dasar disertakan dan tingkat kompresi diatur untuk menekankan kecepatan operasi atas efisiensi. Untuk menggunakan ZipFile kelas , Anda harus mereferensikan assembly System.IO.Compression.FileSystem dalam proyek Anda.

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string startPath = @"c:\example\start";
            string zipPath = @"c:\example\result.zip";
            string extractPath = @"c:\example\extract";

            ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);

            ZipFile.ExtractToDirectory(zipPath, extractPath);
        }
    }
}
open System.IO.Compression

let startPath = @"c:\example\start"
let zipPath = @"c:\example\result.zip"
let extractPath = @"c:\example\extract"

ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true)

ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim startPath As String = "c:\example\start"
        Dim zipPath As String = "c:\example\result.zip"
        Dim extractPath As String = "c:\example\extract"

        ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, True)

        ZipFile.ExtractToDirectory(zipPath, extractPath)
    End Sub

End Module

Keterangan

Struktur direktori dari sistem file dipertahankan dalam arsip. Jika direktori kosong, arsip kosong akan dibuat. Gunakan metode ini kelebihan beban untuk menentukan tingkat kompresi dan apakah akan menyertakan direktori dasar dalam arsip.

Jika arsip sudah ada, IOException pengecualian akan dilemparkan. Jika entri dengan nama yang ditentukan sudah ada di arsip, entri kedua dibuat dengan nama yang identik.

Jika file dalam direktori tidak dapat ditambahkan ke arsip, arsip dibiarkan tidak lengkap dan tidak valid, dan metode melemparkan IOException pengecualian.

Berlaku untuk

CreateFromDirectory(String, Stream, CompressionLevel, Boolean, Encoding)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs

Membuat arsip zip dalam aliran yang ditentukan yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi dan pengodean karakter yang ditentukan untuk nama entri, dan secara opsional menyertakan direktori dasar.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)

Parameter

sourceDirectoryName
String

Jalur ke direktori yang akan diarsipkan, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

destination
Stream

Aliran tempat arsip zip akan disimpan.

compressionLevel
CompressionLevel

Salah satu nilai enumerasi yang menunjukkan apakah akan menekankan kecepatan atau efektivitas kompresi saat membuat entri.

includeBaseDirectory
Boolean

true untuk menyertakan nama direktori dari sourceDirectoryName di akar arsip; false untuk menyertakan hanya konten direktori.

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.

Pengecualian

sourceDirectoryName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

-atau-

Aliran destination tidak mendukung penulisan.

sourceDirectoryName atau destination adalah null.

Di sourceDirectoryName jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceDirectoryName tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).

File dalam direktori yang ditentukan tidak dapat dibuka.

-atau-

Terjadi kesalahan I/O saat membuka file yang akan diarsipkan.

sourceDirectoryName berisi format yang tidak valid.

compressionLevel bukan nilai yang valid CompressionLevel .

Keterangan

Struktur direktori dari sistem file dipertahankan dalam arsip. Jika direktori kosong, arsip kosong akan dibuat. Gunakan metode ini kelebihan beban untuk menentukan tingkat kompresi dan pengodean karakter, dan apakah akan menyertakan direktori dasar dalam arsip. Jika file dalam direktori tidak dapat ditambahkan ke arsip, arsip dibiarkan tidak lengkap dan tidak valid, dan metode melemparkan IOException pengecualian.

Berlaku untuk

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs
Sumber:
ZipFile.Create.cs

Membuat arsip zip yang berisi file dan direktori dari direktori yang ditentukan, menggunakan tingkat kompresi dan pengodean karakter yang ditentukan untuk nama entri, dan secara opsional menyertakan direktori dasar.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)

Parameter

sourceDirectoryName
String

Jalur ke direktori yang akan diarsipkan, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

destinationArchiveFileName
String

Jalur arsip yang akan dibuat, ditentukan sebagai jalur relatif atau absolut. Jalur relatif ditafsirkan relatif terhadap direktori kerja saat ini.

compressionLevel
CompressionLevel

Salah satu nilai enumerasi yang menunjukkan apakah akan menekankan kecepatan atau efektivitas kompresi saat membuat entri.

includeBaseDirectory
Boolean

true untuk menyertakan nama direktori dari sourceDirectoryName di akar arsip; false untuk menyertakan hanya konten direktori.

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.

Pengecualian

sourceDirectoryName atau destinationArchiveFileName adalah Empty, hanya berisi spasi kosong, atau berisi setidaknya satu karakter yang tidak valid.

-atau-

entryNameEncoding diatur ke pengodean Unicode selain UTF-8.

sourceDirectoryName atau destinationArchiveFileName adalah null.

Dalam sourceDirectoryName atau destinationArchiveFileName, jalur yang ditentukan, nama file, atau keduanya melebihi panjang maksimum yang ditentukan sistem.

sourceDirectoryName tidak valid atau tidak ada (misalnya, ada di drive yang tidak dipetakan).

destinationArchiveFileName sudah ada.

-atau-

File dalam direktori yang ditentukan tidak dapat dibuka.

-atau-

Terjadi kesalahan I/O saat membuka file yang akan diarsipkan.

destinationArchiveFileName menentukan direktori.

-atau-

Pemanggil tidak memiliki izin yang diperlukan untuk mengakses direktori yang ditentukan di sourceDirectoryName atau file yang ditentukan dalam destinationArchiveFileName.

sourceDirectoryName atau destinationArchiveFileName berisi format yang tidak valid.

-atau-

Arsip zip tidak mendukung penulisan.

Keterangan

Struktur direktori dari sistem file dipertahankan dalam arsip. Jika direktori kosong, arsip kosong akan dibuat. Gunakan metode ini kelebihan beban untuk menentukan tingkat kompresi dan pengodean karakter, dan apakah akan menyertakan direktori dasar dalam arsip.

Jika arsip sudah ada, IOException pengecualian akan dilemparkan. Jika entri dengan nama yang ditentukan sudah ada di arsip, entri kedua dibuat dengan nama yang identik.

Jika file dalam direktori tidak dapat ditambahkan ke arsip, arsip dibiarkan tidak lengkap dan tidak valid, dan metode melemparkan IOException pengecualian.

Jika entryNameEncoding diatur ke nilai selain null, nama entri dikodekan dengan menggunakan pengodean yang ditentukan. Jika pengodean yang ditentukan adalah UTF-8, bendera pengodean bahasa (dalam bendera bit tujuan umum header file lokal) diatur untuk setiap entri,

Jika 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 UTF-8 digunakan untuk mengodekan nama entri.

  • Untuk nama entri yang hanya berisi karakter ASCII, bendera pengodean bahasa diatur, dan halaman kode default sistem saat ini digunakan untuk mengodekan nama entri.

Berlaku untuk