ZipFile.CreateFromDirectory Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 destinationArchiveFileName
zadaná 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 destinationArchiveFileName
zadaná 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 destinationArchiveFileName
př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.