Sdílet prostřednictvím


ZipFileExtensions.ExtractToDirectory Metoda

Definice

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)

Zdroj:
ZipFileExtensions.ZipArchive.Extract.cs
Zdroj:
ZipFileExtensions.ZipArchive.Extract.cs
Zdroj:
ZipFileExtensions.ZipArchive.Extract.cs

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)

Zdroj:
ZipFileExtensions.ZipArchive.Extract.cs
Zdroj:
ZipFileExtensions.ZipArchive.Extract.cs
Zdroj:
ZipFileExtensions.ZipArchive.Extract.cs

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

Platí pro