ZipFileExtensions.ExtractToDirectory 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í.
Přetížení
ExtractToDirectory(ZipArchive, String) |
Extrahuje všechny soubory v archivu zip do adresáře v systému souborů. |
ExtractToDirectory(ZipArchive, String, Boolean) |
Extrahuje všechny soubory v archivu do adresáře v systému souborů. |
ExtractToDirectory(ZipArchive, String)
Extrahuje všechny soubory v archivu zip do adresáře v systému souborů.
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)
Parametry
- source
- ZipArchive
Archiv zip, ze které se mají extrahovat soubory.
- destinationDirectoryName
- String
Cesta k adresáři, do které se mají extrahované soubory umístit. Můžete zadat buď relativní, nebo absolutní cestu. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.
Výjimky
destinationDirectoryName
is Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.
destinationDirectoryName
je null
.
Zadaná cesta překračuje maximální délku definovanou systémem.
Zadaná cesta je neplatná (například je na nenamapované jednotce).
Název položky v archivu je Empty, obsahuje pouze prázdné znaky nebo obsahuje alespoň jeden neplatný znak.
-nebo-
Extrahování položky z archivu by vytvořilo soubor, který je mimo adresář určený parametrem destinationDirectoryName
. (K tomu může dojít například v případě, že název položky obsahuje nadřazené přístupové objekty adresáře.)
-nebo-
Dvě nebo více položek v archivu mají stejný název.
Volající nemá požadovaná oprávnění k zápisu do cílového adresáře.
destinationDirectoryName
obsahuje neplatný formát.
Položka archivu nebyla nalezena nebo je poškozena.
-nebo-
Položka archivu byla komprimována metodou komprese, která není podporována.
Příklady
Následující příklad ukazuje, jak vytvořit novou položku v archivu zip z existujícího souboru a extrahovat archiv do nového adresáře.
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string zipPath = @"c:\users\exampleuser\start.zip";
string extractPath = @"c:\users\exampleuser\extract";
string newFile = @"c:\users\exampleuser\NewFile.txt";
using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
{
archive.CreateEntryFromFile(newFile, "NewEntry.txt");
archive.ExtractToDirectory(extractPath);
}
}
}
}
Imports System.IO
Imports System.IO.Compression
Module Module1
Sub Main()
Dim zipPath As String = "c:\users\exampleuser\end.zip"
Dim extractPath As String = "c:\users\exampleuser\extract"
Dim newFile As String = "c:\users\exampleuser\NewFile.txt"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
archive.ExtractToDirectory(extractPath)
End Using
End Sub
End Module
Poznámky
Tato metoda vytvoří adresář určený nástrojem destinationDirectoryName
. Metoda také vytvoří podadresáře, které odrážejí hierarchii v archivu zip. Pokud během extrakce dojde k chybě, archiv zůstane částečně extrahovaný. Každý extrahovaný soubor má stejnou relativní cestu k adresáři určenému nástrojem destinationDirectoryName
jako jeho zdrojová položka ke kořenovému adresáři archivu.
Platí pro
ExtractToDirectory(ZipArchive, String, Boolean)
Extrahuje všechny soubory v archivu do adresáře v systému souborů.
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)
Parametry
- source
- ZipArchive
Extrahuje ZipArchive se.
- destinationDirectoryName
- String
Cesta k cílovému adresáři v systému souborů. Cesta může být relativní nebo absolutní. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.
- overwriteFiles
- Boolean
true
přepsat existující soubory; false
Jinak.
Výjimky
destinationArchiveFileName
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných nástrojem InvalidPathChars.
destinationArchiveFileName
je null
.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Zadaná cesta je neplatná (například je na nenamapované jednotce).
Název objektu má nulovou délku ZipArchiveEntry , obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků definovaných nástrojem InvalidPathChars.
-nebo-
Extrahování objektu ZipArchiveEntry by vedlo k vytvoření cílového souboru, který je mimo destinationArchiveFileName
(například pokud název položky obsahuje nadřazené přístupové objekty adresáře).
-nebo-
Objekt ZipArchiveEntry má stejný název jako již extrahovaná položka ze stejného archivu.
Volající nemá požadované oprávnění.
destinationArchiveFileName
je v neplatném formátu.
Nebyla ZipArchiveEntry nalezena nebo byla poškozena.
-nebo-
Soubor ZipArchiveEntry byl komprimován metodou komprese, která není podporována.
Poznámky
Zadaný adresář již pravděpodobně existuje. Tato metoda v případě potřeby vytvoří zadaný adresář a všechny podadresáře.
Pokud při extrahování archivu dojde k chybě, archiv zůstane částečně extrahovaný.
Každá položka se extrahuje tak, aby extrahovaný soubor má stejnou relativní cestu k destinationDirectoryName
jako položka ke kořenovému adresáři archivu.
Pokud má archivovaný soubor neplatný čas poslední změny, použije se první datum a čas reprezentovaný ve formátu časového razítka Zip (půlnoc 1. ledna 1980).