ZipFile.CreateFromDirectory Metoda

Definice

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

Přetížení

Name Description
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žívá zadanou úroveň komprese a volitelně obsahuje základní adresář.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Vytvoří archiv zip, který obsahuje soubory a adresáře ze zadaného adresáře, použije zadanou úroveň komprese a volitelně zahrne 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 komentáře a volitelně obsahuje základní adresář.

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

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 komentáře a volitelně obsahuje základní adresář.

CreateFromDirectory(String, Stream)

Zdroj:
ZipFile.Create.cs
Zdroj:
ZipFile.Create.cs
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, je určena jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destination
Stream

Stream, do kterého se archiv zip uloží.

Výjimky

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

nebo

Stream destination nepodporuje zápis.

sourceDirectoryName nebo destination je null.

Zadaná sourceDirectoryNamecesta, název souboru nebo obojí překročí maximální délku definovanou systémem.

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

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

nebo

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

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 zadat ú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
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, je určena jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destinationArchiveFileName
String

Cesta archivu, která se má vytvořit, určená jako relativní nebo absolutní cesta. Relativní cesta se interpretuje 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.

sourceDirectoryNameZadaná destinationArchiveFileName cesta, název souboru nebo obojí překročí maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nemapované 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 chybě vstupně-výstupní operace.

destinationArchiveFileName určuje adresář.

nebo

Volající nemá požadovaná oprávnění pro přístup k adresáři zadanému v sourceDirectoryName adresáři 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 zadat ú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, IOException vyvolá se 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
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žívá zadanou úroveň komprese a volitelně obsahuje 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, je určena jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destination
Stream

Stream, do kterého se archiv zip uloží.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která označuje, zda se má při vytváření položky zdůraznit účinnost rychlosti nebo 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 je Empty, obsahuje pouze prázdné znaky nebo obsahuje aspoň jeden neplatný znak.

nebo

Stream destination nepodporuje zápis.

sourceDirectoryName nebo destination je null.

Zadaná sourceDirectoryNamecesta, název souboru nebo obojí překročí maximální délku definovanou systémem.

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

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

nebo

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

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í tohoto přetížení metody určete úroveň komprese a zda 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
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 volitelně zahrne 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, je určena jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destinationArchiveFileName
String

Cesta archivu, která se má vytvořit, určená jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která označuje, zda se má při vytváření položky zdůraznit účinnost rychlosti nebo 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.

sourceDirectoryNameZadaná destinationArchiveFileName cesta, název souboru nebo obojí překročí maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nemapované 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 chybě vstupně-výstupní operace.

destinationArchiveFileName určuje adresář.

nebo

Volající nemá požadovaná oprávnění pro přístup k adresáři zadanému v sourceDirectoryName adresáři 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 zdůraznila rychlost operace nad efektivitou. 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ů je zachována v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pomocí tohoto přetížení metody určete úroveň komprese a zda zahrnout základní adresář do archivu.

Pokud archiv již existuje, IOException vyvolá se 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
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žívá zadanou úroveň komprese a kódování znaků pro názvy položek a komentáře a volitelně obsahuje 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, je určena jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destination
Stream

Stream, do kterého se archiv zip uloží.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která označuje, zda se má při vytváření položky zdůraznit účinnost rychlosti nebo 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 a komentářů v tomto archivu. Zadejte hodnotu pro tento parametr pouze v případě, že je vyžadováno kódování pro interoperabilitu s nástroji a knihovnami zip archivu, které nepodporují kódování UTF-8 pro názvy položek nebo komentáře.

Výjimky

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

nebo

Stream destination nepodporuje zápis.

sourceDirectoryName nebo destination je null.

Zadaná sourceDirectoryNamecesta, název souboru nebo obojí překročí maximální délku definovanou systémem.

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

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

nebo

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

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čit úroveň komprese a kódování znaků a zda 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
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 komentáře a volitelně obsahuje 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, je určena jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

destinationArchiveFileName
String

Cesta archivu, která se má vytvořit, určená jako relativní nebo absolutní cesta. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která označuje, zda se má při vytváření položky zdůraznit účinnost rychlosti nebo 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 a komentářů v tomto archivu. Zadejte hodnotu pro tento parametr pouze v případě, že je vyžadováno kódování pro interoperabilitu s nástroji a knihovnami zip archivu, které nepodporují kódování UTF-8 pro názvy položek nebo komentáře.

Výjimky

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

nebo

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

sourceDirectoryName nebo destinationArchiveFileName je null.

sourceDirectoryNameZadaná destinationArchiveFileName cesta, název souboru nebo obojí překročí maximální délku definovanou systémem.

sourceDirectoryName je neplatný nebo neexistuje (například je na nemapované 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 chybě vstupně-výstupní operace.

destinationArchiveFileName určuje adresář.

nebo

Volající nemá požadovaná oprávnění pro přístup k adresáři zadanému v sourceDirectoryName adresáři 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ů je zachována v archivu. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pomocí této metody přetížení určit úroveň komprese a kódování znaků a zda zahrnout základní adresář do archivu.

Pokud archiv již existuje, IOException vyvolá se 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 nastavena na jinou hodnotu než null, názvy položek a komentáře jsou kódovány pomocí zadaného kódování. Pokud je zadané kódování kódování UTF-8, je pro každou položku nastaven příznak kódování jazyka (v bitovém příznaku pro obecné účely hlavičky místního souboru).

Pokud entryNameEncoding je nastavena hodnota null, názvy položek a komentáře jsou kódovány podle následujících pravidel:

  • Pro názvy položek a komentáře, 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 a komentáře.

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

Platí pro