Sdílet prostřednictvím


ZipFile.CreateFromDirectory Metoda

Definice

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře.

Přetížení

CreateFromDirectory(String, Stream)

Vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře.

CreateFromDirectory(String, String)

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, použije zadanou úroveň komprese a volitelně zahrne základní adresář.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře, používá zadanou úroveň komprese a volitelně zahrnuje základní adresář.

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

Vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, používá zadanou úroveň komprese a kódování znaků pro názvy položek a volitelně zahrnuje základní adresář.

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

Vytvoří archiv ZIP, který obsahuje soubory a adresáře ze zadaného adresáře, používá určenou úroveň komprese a kódování znaků pro názvy položek a volitelně zahrnuje základní adresář.

CreateFromDirectory(String, Stream)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře.

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)

Parametry

sourceDirectoryName
String

Cesta k adresáři, který se má archivovat, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destination
Stream

Datový proud, ve kterém má být archiv zip uložen.

Výjimky

sourceDirectoryName is Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

-nebo-

Datový destination proud nepodporuje psaní.

sourceDirectoryName nebo destination je null.

V sourceDirectoryName zadané cestě překračují název souboru nebo obojí maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nenamapované jednotce).

Soubor v zadaném adresáři nelze otevřít.

-nebo-

Při otevírání souboru, který se má archivovat, došlo k vstupně-výstupní chybě.

sourceDirectoryName obsahuje neplatný formát.

Poznámky

Adresářová struktura ze systému souborů je zachována v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Toto přetížení metody nezahrnuje základní adresář v archivu a neumožňuje určit úroveň komprese. Pokud chcete zahrnout základní adresář nebo zadat úroveň komprese, zavolejte CreateFromDirectory(String, Stream, CompressionLevel, Boolean) přetížení metody. Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá IOException výjimku.

Platí pro

CreateFromDirectory(String, String)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře.

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)

Parametry

sourceDirectoryName
String

Cesta k adresáři, který se má archivovat, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destinationArchiveFileName
String

Cesta k archivu, který se má vytvořit, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

Výjimky

sourceDirectoryName nebo destinationArchiveFileName je Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

sourceDirectoryName nebo destinationArchiveFileName je null.

V sourceDirectoryName systému nebo destinationArchiveFileNamezadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nenamapované jednotce).

destinationArchiveFileName již existuje.

-nebo-

Soubor v zadaném adresáři nelze otevřít.

-nebo-

Při otevírání souboru, který se má archivovat, došlo k vstupně-výstupní chybě.

destinationArchiveFileName určuje adresář.

-nebo-

Volající nemá požadovaná oprávnění pro přístup k adresáři zadanému v sourceDirectoryName nebo k souboru zadanému v destinationArchiveFileName.

sourceDirectoryName nebo destinationArchiveFileName obsahuje neplatný formát.

-nebo-

Archiv zip nepodporuje psaní.

Příklady

Tento příklad ukazuje, jak vytvořit a extrahovat archiv zip pomocí ZipFile třídy. Zkomprimuje obsah složky do archivu zip a pak tento obsah extrahuje do nové složky. Chcete-li použít ZipFile třídu, musíte odkazovat na System.IO.Compression.FileSystem sestavení v projektu.

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

Poznámky

Adresářová struktura ze systému souborů je zachována v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Toto přetížení metody nezahrnuje základní adresář v archivu a neumožňuje určit úroveň komprese. Pokud chcete zahrnout základní adresář nebo zadat úroveň komprese, zavolejte CreateFromDirectory(String, String, CompressionLevel, Boolean) přetížení metody.

Pokud archiv již existuje, vyvolá se IOException výjimka. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka se stejným názvem.

Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá IOException výjimku.

Platí pro

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, použije zadanou úroveň komprese a volitelně zahrne základní adresář.

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)

Parametry

sourceDirectoryName
String

Cesta k adresáři, který se má archivovat, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destination
Stream

Datový proud, ve kterém má být archiv zip uložen.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která označuje, zda se má při vytváření položky zdůraznit rychlost nebo účinnost komprese.

includeBaseDirectory
Boolean

true zahrnout název adresáře z sourceDirectoryName kořenového adresáře archivu; false zahrnout pouze obsah adresáře.

Výjimky

sourceDirectoryName is Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

-nebo-

Datový destination proud nepodporuje psaní.

sourceDirectoryName nebo destination je null.

V sourceDirectoryName zadané cestě překračují název souboru nebo obojí maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nenamapované jednotce).

Soubor v zadaném adresáři nelze otevřít.

-nebo-

Při otevírání souboru, který se má archivovat, došlo k vstupně-výstupní chybě.

sourceDirectoryName obsahuje neplatný formát.

compressionLevel není platná CompressionLevel hodnota.

Poznámky

Adresářová struktura ze systému souborů je zachována v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pomocí této metody přetížení určete úroveň komprese a zda se má zahrnout základní adresář do archivu. Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá IOException výjimku.

Platí pro

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře, používá zadanou úroveň komprese a volitelně zahrnuje základní adresář.

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)

Parametry

sourceDirectoryName
String

Cesta k adresáři, který se má archivovat, zadaný jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

destinationArchiveFileName
String

Cesta k archivu, který má být vytvořen, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která určuje, zda se má při vytváření položky zdůraznit rychlost nebo účinnost komprese.

includeBaseDirectory
Boolean

true zahrnout název adresáře z sourceDirectoryName kořenového adresáře archivu; false zahrnout pouze obsah adresáře.

Výjimky

sourceDirectoryName nebo destinationArchiveFileName je Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

sourceDirectoryName nebo destinationArchiveFileName je null.

V sourceDirectoryName systému nebo destinationArchiveFileNamezadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nenamapované jednotce).

destinationArchiveFileName již existuje.

-nebo-

Soubor v zadaném adresáři nelze otevřít.

-nebo-

Při otevírání souboru, který se má archivovat, došlo k vstupně-výstupní chybě.

destinationArchiveFileName určuje adresář.

-nebo-

Volající nemá požadovaná oprávnění pro přístup k adresáři zadanému v sourceDirectoryName nebo k souboru zadanému v destinationArchiveFileName.

sourceDirectoryName nebo destinationArchiveFileName obsahuje neplatný formát.

-nebo-

Archiv zip nepodporuje psaní.

Příklady

Tento příklad ukazuje, jak vytvořit a extrahovat archiv zip pomocí ZipFile třídy. Zkomprimuje obsah složky do archivu zip a pak tento obsah extrahuje do nové složky. Při komprimaci archivu je zahrnut základní adresář a úroveň komprese je nastavena tak, aby byla zdůrazněna rychlost operace a efektivita. Chcete-li použít ZipFile třídu, musíte odkazovat na System.IO.Compression.FileSystem sestavení v projektu.

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

Poznámky

Adresářová struktura ze systému souborů se zachová v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pomocí této metody přetížení určete úroveň komprese a zda se má zahrnout základní adresář do archivu.

Pokud archiv již existuje, IOException je vyvolán výjimka. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka se stejným názvem.

Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá IOException výjimku.

Platí pro

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

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, použije zadanou úroveň komprese a kódování znaků pro názvy položek a volitelně zahrnuje základní adresář.

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)

Parametry

sourceDirectoryName
String

Cesta k adresáři, který se má archivovat, zadaný jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

destination
Stream

Datový proud, ve kterém má být uložen archiv zip.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která určuje, zda se má při vytváření položky zdůraznit rychlost nebo účinnost komprese.

includeBaseDirectory
Boolean

true zahrnout název adresáře z sourceDirectoryName kořenového adresáře archivu; false zahrnout pouze obsah adresáře.

entryNameEncoding
Encoding

Kódování, které se má použít při čtení nebo zápisu názvů položek v tomto archivu. Hodnotu tohoto parametru zadejte pouze v případě, že je kódování vyžadováno pro interoperabilitu s archivačními nástroji a knihovnami zip, které nepodporují kódování UTF-8 pro názvy položek.

Výjimky

sourceDirectoryName is Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

-nebo-

Datový destination proud nepodporuje psaní.

sourceDirectoryName nebo destination je null.

V sourceDirectoryName zadané cestě, název souboru nebo obojí překračují maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například se nachází na nenamapované jednotce).

Soubor v zadaném adresáři nelze otevřít.

-nebo-

Při otevírání souboru, který se má archivovat, došlo k vstupně-výstupní chybě.

sourceDirectoryName obsahuje neplatný formát.

compressionLevel není platná CompressionLevel hodnota.

Poznámky

Adresářová struktura ze systému souborů se zachová v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pomocí této metody přetížení určete úroveň komprese a kódování znaků a zda chcete zahrnout základní adresář do archivu. Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá IOException výjimku.

Platí pro

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

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře, použije zadanou úroveň komprese a kódování znaků pro názvy položek a volitelně zahrnuje základní adresář.

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)

Parametry

sourceDirectoryName
String

Cesta k adresáři, který se má archivovat, zadaný jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

destinationArchiveFileName
String

Cesta k archivu, který má být vytvořen, zadaná jako relativní nebo absolutní cesta. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která určuje, zda se má při vytváření položky zdůraznit rychlost nebo účinnost komprese.

includeBaseDirectory
Boolean

true zahrnout název adresáře z sourceDirectoryName kořenového adresáře archivu; false zahrnout pouze obsah adresáře.

entryNameEncoding
Encoding

Kódování, které se má použít při čtení nebo zápisu názvů položek v tomto archivu. Hodnotu tohoto parametru zadejte pouze v případě, že je kódování vyžadováno pro interoperabilitu s archivačními nástroji a knihovnami zip, které nepodporují kódování UTF-8 pro názvy položek.

Výjimky

sourceDirectoryName nebo destinationArchiveFileName je Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.

-nebo-

entryNameEncoding je nastavená na kódování Unicode jiné než UTF-8.

sourceDirectoryName nebo destinationArchiveFileName je null.

V sourceDirectoryName systému nebo destinationArchiveFileNamepřesahují zadaná cesta, název souboru nebo obojí maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například se nachází na nenamapované jednotce).

destinationArchiveFileName již existuje.

-nebo-

Soubor v zadaném adresáři nelze otevřít.

-nebo-

Při otevírání souboru, který se má archivovat, došlo k vstupně-výstupní chybě.

destinationArchiveFileName určuje adresář.

-nebo-

Volající nemá požadovaná oprávnění pro přístup k adresáři zadanému v sourceDirectoryName nebo k souboru zadanému v destinationArchiveFileName.

sourceDirectoryName nebo destinationArchiveFileName obsahuje neplatný formát.

-nebo-

Archiv zip nepodporuje psaní.

Poznámky

Adresářová struktura ze systému souborů se zachová v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pomocí této metody přetížení určete úroveň komprese a kódování znaků a zda chcete zahrnout základní adresář do archivu.

Pokud archiv již existuje, IOException je vyvolán výjimka. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka se stejným názvem.

Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá IOException výjimku.

Pokud entryNameEncoding je nastavená jiná hodnota než null, názvy položek se kódují pomocí zadaného kódování. Pokud je zadané kódování UTF-8, nastaví se pro každou položku příznak kódování jazyka (v bitovém příznaku pro obecné účely v hlavičce místního souboru).

Pokud entryNameEncoding je nastavená hodnota null, názvy položek se kódují podle následujících pravidel:

  • Pro názvy položek, které obsahují znaky mimo rozsah ASCII, je nastaven příznak kódování jazyka a UTF-8 se používá ke kódování názvu položky.

  • Pro názvy položek, které obsahují pouze znaky ASCII, se nastaví příznak kódování jazyka a ke kódování názvů položek se použije aktuální výchozí znaková stránka systému.

Platí pro