ZipFile.CreateFromDirectoryAsync Metoda

Definice

Přetížení

Name Description
CreateFromDirectoryAsync(String, Stream, CancellationToken)

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

CreateFromDirectoryAsync(String, String, CancellationToken)

Asynchronně vytvoří archiv zip v cestě destinationArchiveFileName , která obsahuje soubory a adresáře z adresáře určeného sourceDirectoryName.

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken)

Asynchronně vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, pomocí zadané úrovně komprese a volitelně včetně základního adresáře.

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken)

Asynchronně vytvoří archiv zip v cestě destinationArchiveFileName , která obsahuje soubory a adresáře v adresáři určeném sourceDirectoryName.

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken)

Asynchronně vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, pomocí zadané úrovně komprese a kódování znaků pro názvy položek a volitelně včetně základního adresáře.

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken)

Asynchronně vytvoří archiv zip v cestě destinationArchiveFileName , která obsahuje soubory a adresáře v adresáři určeném sourceDirectoryName.

CreateFromDirectoryAsync(String, Stream, CancellationToken)

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

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

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, Optional cancellationToken As CancellationToken = Nothing) As Task

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ží.

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

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.

Asynchronní operace se zruší.

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

CreateFromDirectoryAsync(String, String, CancellationToken)

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

Asynchronně vytvoří archiv zip v cestě destinationArchiveFileName , která obsahuje soubory a adresáře z adresáře určeného sourceDirectoryName.

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

Parametry

sourceDirectoryName
String

Cesta k adresáři v systému souborů, který se má archivovat.

destinationArchiveFileName
String

Název archivu, který se má vytvořit.

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

Výjimky

sourceDirectoryNamenebo destinationArchiveFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných .InvalidPathChars

sourceDirectoryName nebo destinationArchiveFileName je null.

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

Například na platformách s Windows musí být cesty kratší než 248 znaků a názvy souborů musí být menší než 260 znaků.

Cesta zadaná v sourceDirectoryName nebo destinationArchiveFileName je neplatná (například je na nemapované jednotce).

nebo

Zadaný adresář sourceDirectoryName neexistuje.

destinationArchiveFileName již existuje.

nebo

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

destinationArchiveFileName zadal adresář.

nebo

Volající nemá požadované oprávnění.

sourceDirectoryName nebo destinationArchiveFileName je v neplatném formátu.

Asynchronní operace se zruší.

Poznámky

Adresářová struktura je zachována v archivu a rekurzivní vyhledávání se provádí pro archivaci souborů. Archiv nesmí existovat. Pokud je adresář prázdný, vytvoří se prázdný archiv. Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá výjimku. Tato metoda nezahrnuje základní adresář do archivu.

Pokud při přidávání souborů do archivu dojde k chybě, tato metoda přestane přidávat soubory a ponechá archiv v neplatném stavu. Cesty mají povoleno zadat relativní nebo absolutní informace o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři. Pokud soubor v archivu obsahuje data v poli času posledního zápisu, které není platným časovým razítkem zip, použije se hodnota ukazatele 1980 Leden 1 o půlnoci pro čas poslední změny souboru. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka, která má stejný název. Vzhledem k tomu, že není zadána žádná CompressionLevel hodnota, použije se výchozí hodnota poskytovaná implementací podkladového algoritmu komprese; ZipArchive neuloží vlastní výchozí hodnotu.

(V současné době je základní algoritmus komprese poskytován DeflateStream třídou.)

Platí pro

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken)

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

Asynchronně vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, pomocí zadané úrovně komprese a volitelně včetně základního adresáře.

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

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.

cancellationToken
CancellationToken

Token pro monitorování žádostí o zrušení.

Návraty

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.

Asynchronní operace se zruší.

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

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken)

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

Asynchronně vytvoří archiv zip v cestě destinationArchiveFileName , která obsahuje soubory a adresáře v adresáři určeném sourceDirectoryName.

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.IO.Compression.CompressionLevel * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

Parametry

sourceDirectoryName
String

Cesta k adresáři v systému souborů, který se má archivovat.

destinationArchiveFileName
String

Název archivu, který se má vytvořit.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která určuje úroveň komprese (rychlost/paměť vs. kompromis komprimované velikosti).

includeBaseDirectory
Boolean

true označuje, že by měl být adresář sourceDirectoryName uvedený v kořenovém adresáři archivu. false a indikuje, že soubory a adresáře by sourceDirectoryName měly být zahrnuty přímo do archivu.

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

Výjimky

sourceDirectoryNamenebo destinationArchiveFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných .InvalidPathChars

sourceDirectoryName nebo destinationArchiveFileName je null.

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

Například na platformách s Windows musí být cesty kratší než 248 znaků a názvy souborů musí být menší než 260 znaků.

Cesta zadaná v sourceDirectoryName nebo destinationArchiveFileName je neplatná (například je na nemapované jednotce).

nebo

Zadaný adresář sourceDirectoryName neexistuje.

destinationArchiveFileName již existuje.

nebo

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

destinationArchiveFileName zadal adresář.

nebo

Volající nemá požadované oprávnění.

sourceDirectoryName nebo destinationArchiveFileName je v neplatném formátu.

Asynchronní operace se zruší.

Poznámky

Adresářová struktura je zachována v archivu a rekurzivní vyhledávání se provádí pro archivaci souborů. Archiv nesmí existovat. Pokud je adresář prázdný, vytvoří se prázdný archiv.

Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá výjimku. Tato metoda volitelně zahrnuje základní adresář v archivu.

Pokud při přidávání souborů do archivu dojde k chybě, tato metoda zastaví přidávání souborů a ponechá archiv v neplatném stavu. Cesty mají povoleno zadat relativní nebo absolutní informace o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři. Pokud soubor v archivu obsahuje data v poli času posledního zápisu, které není platným časovým razítkem zip, použije se hodnota ukazatele 1980 Leden 1 o půlnoci pro čas poslední změny souboru. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka, která má stejný název. Vzhledem k tomu, že není zadána žádná CompressionLevel hodnota, použije se výchozí hodnota poskytovaná implementací podkladového algoritmu komprese; ZipArchive neuloží vlastní výchozí hodnotu.

(V současné době je základní algoritmus komprese poskytován DeflateStream třídou.)

Platí pro

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken)

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

Asynchronně vytvoří archiv zip v zadaném datovém proudu, který obsahuje soubory a adresáře ze zadaného adresáře, pomocí zadané úrovně komprese a kódování znaků pro názvy položek a volitelně včetně základního adresáře.

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

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

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

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.

Asynchronní operace se zruší.

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

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken)

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

Asynchronně vytvoří archiv zip v cestě destinationArchiveFileName , která obsahuje soubory a adresáře v adresáři určeném sourceDirectoryName.

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

Parametry

sourceDirectoryName
String

Cesta k adresáři v systému souborů, který se má archivovat.

destinationArchiveFileName
String

Název archivu, který se má vytvořit.

compressionLevel
CompressionLevel

Jedna z hodnot výčtu, která určuje úroveň komprese (rychlost/paměť vs. kompromis komprimované velikosti).

includeBaseDirectory
Boolean

true označuje, že by měl být adresář sourceDirectoryName uvedený v kořenovém adresáři archivu. false a indikuje, že soubory a adresáře by sourceDirectoryName měly být zahrnuty přímo do archivu.

entryNameEncoding
Encoding

Kódování, které se má použít při čtení nebo zápisu názvů položek a komentářů v této zipArchive.

cancellationToken
CancellationToken

Token zrušení, který se má monitorovat pro žádosti o zrušení.

Návraty

Výjimky

sourceDirectoryNamenebo destinationArchiveFileName je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných .InvalidPathChars

sourceDirectoryName nebo destinationArchiveFileName je null.

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

Například na platformách s Windows musí být cesty kratší než 248 znaků a názvy souborů musí být menší než 260 znaků.

Cesta zadaná v sourceDirectoryName nebo destinationArchiveFileName je neplatná (například je na nemapované jednotce).

nebo

Zadaný adresář sourceDirectoryName neexistuje.

destinationArchiveFileName již existuje.

nebo

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

destinationArchiveFileName zadal adresář.

nebo

Volající nemá požadované oprávnění.

sourceDirectoryName nebo destinationArchiveFileName je v neplatném formátu.

Asynchronní operace se zruší.

Poznámky

Adresářová struktura je zachována v archivu a rekurzivní vyhledávání se provádí pro archivaci souborů. Archiv nesmí existovat. Pokud je adresář prázdný, vytvoří se prázdný archiv.

Pokud soubor v adresáři nelze přidat do archivu, archiv zůstane neúplný a neplatný a metoda vyvolá výjimku. Tato metoda volitelně zahrnuje základní adresář v archivu.

Pokud při přidávání souborů do archivu dojde k chybě, tato metoda zastaví přidávání souborů a ponechá archiv v neplatném stavu. Cesty mají povoleno zadat relativní nebo absolutní informace o cestě. Relativní informace o cestě se interpretují jako relativní vzhledem k aktuálnímu pracovnímu adresáři. Pokud soubor v archivu obsahuje data v poli času posledního zápisu, které není platným časovým razítkem zip, použije se hodnota ukazatele 1980 Leden 1 o půlnoci pro čas poslední změny souboru. Pokud položka se zadaným názvem již v archivu existuje, vytvoří se druhá položka, která má stejný název. Vzhledem k tomu, že není zadána žádná CompressionLevel hodnota, použije se výchozí hodnota poskytovaná implementací podkladového algoritmu komprese; ZipArchive neuloží vlastní výchozí hodnotu.

(V současné době je základní algoritmus komprese poskytován DeflateStream třídou.)

Zadání hodnoty pro entryNameEncoding jinou hodnotu, než null je zakázáno.

To však může být nezbytné pro interoperabilitu s nástroji a knihovnami zip archivu, které správně nepodporují kódování UTF-8 pro názvy položek nebo komentáře.

  • Pokud entryNameEncoding není zadán (== null):
    • Názvy souborů nebo komentáře, které obsahují znaky mimo rozsah ASCII:
      Příznak kódování jazyka (EFS) se nastaví v příznaku bitu pro obecné účely v hlavičce místního souboru odpovídající položky a UTF-8 (Encoding.UTF8) se použije ke kódování názvu položky a komentáře do bajtů.
    • U názvů souborů nebo komentářů, které neobsahují znaky mimo rozsah ASCII:
      Příznak kódování jazyka (EFS) nebude nastaven v příznaku bitu pro obecné účely v záhlaví místního souboru odpovídající položky a aktuální výchozí znaková stránka systému (Encoding.Default) se použije ke kódování názvů položek a komentářů do bajtů.
  • Pokud entryNameEncoding je zadán (!= null):
    • Zadaná entryNameEncoding hodnota bude vždy použita ke kódování názvů položek a komentářů do bajtů.
      Příznak kódování jazyka (EFS) v příznaku pro obecné účely hlavičky místního souboru pro každou položku bude nastaven, pokud a pouze pokud je zadaný entryNameEncoding kód UTF-8.

Kódování Unicode jiné než UTF-8 nelze použít pro kód entryNameEncoding, jinak ArgumentException je vyvolán.

Platí pro