ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory ZipFileExtensions.ExtractToDirectory Method

Definice

Přetížení

ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String)

Extrahuje všechny soubory v archivu zip do adresáře v systému souborů.Extracts all the files in the zip archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

Extrahuje všechny soubory v archivu do adresáře v systému souborů.Extracts all of the files in the archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String) ExtractToDirectory(ZipArchive, String)

Extrahuje všechny soubory v archivu zip do adresáře v systému souborů.Extracts all the files in the zip archive to a directory on the file system.

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

Archiv zip pro extrakci souborů z.The zip archive to extract files from.

destinationDirectoryName
String String String String

Cesta k adresáři, do kterého se mají umístit extrahované soubory.The path to the directory to place the extracted files in. Můžete zadat relativní nebo absolutní cestu.You can specify either a relative or an absolute path. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.A relative path is interpreted as relative to the current working directory.

Výjimky

destinationDirectoryNameje Empty, obsahuje pouze prázdné znaky nebo obsahuje nejméně jeden neplatný znak.destinationDirectoryName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryNameje null.destinationDirectoryName is null.

Zadaná cesta přesahuje maximální velikost definovanou systémem.The specified path exceeds the system-defined maximum length.

Zadaná cesta je neplatná (například je na nemapované jednotce).The specified path is invalid (for example, it is on an unmapped drive).

Adresář určený parametrem destinationDirectoryName již existuje.The directory specified by destinationDirectoryName already exists.

-nebo--or- Název položky v archivu je Empty, obsahuje pouze prázdné znaky nebo obsahuje nejméně jeden neplatný znak.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

-nebo--or- Extrakce položky z archivu by vytvořila soubor, který je mimo adresář určený parametrem destinationDirectoryName.Extracting an entry from the archive would create a file that is outside the directory specified by destinationDirectoryName. (K tomu může dojít například v případě, že název položky obsahuje přístup k nadřazeným adresářům.)(For example, this might happen if the entry name contains parent directory accessors.) -nebo--or- Dvě nebo více položek v archivu mají stejný název.Two or more entries in the archive have the same name.

Volající nemá požadovaná oprávnění k zápisu do cílového adresáře.The caller does not have the required permission to write to the destination directory.

destinationDirectoryNameobsahuje neplatný formát.destinationDirectoryName contains an invalid format.

Položka archivu se nedá najít nebo je poškozená.An archive entry cannot be found or is corrupt.

-nebo--or-

Položka archivu byla komprimována pomocí metody komprese, která není podporována.An archive entry was compressed by using a compression method that is not supported.

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.The following example shows how to create a new entry in a zip archive from an existing file, and extract the archive to a new directory. Aby bylo možné kompilátorovat tento příklad kódu, musíte odkazovat na System.IO.Compression sestavení System.IO.Compression.FileSystem a v projektu.In order to compiler this code example, you must reference the System.IO.Compression and System.IO.Compression.FileSystem assemblies in your project.

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ý parametrem destinationDirectoryName.This method creates the directory specified by destinationDirectoryName. Pokud cílový adresář již existuje, tato metoda ho nepřepíše. vyvolá IOException výjimku.If the destination directory already exists, this method does not overwrite it; it throws an IOException exception. Metoda také vytvoří podadresáře, které reflektují hierarchii v archivu zip.The method also creates subdirectories that reflect the hierarchy in the zip archive. Pokud během extrakce dojde k chybě, archiv zůstane částečně extrahován.If an error occurs during extraction, the archive remains partially extracted. Každý extrahovaný soubor má stejnou relativní cestu k adresáři určenému destinationDirectoryName jako jeho Zdrojová položka musí být kořenem archivu.Each extracted file has the same relative path to the directory specified by destinationDirectoryName as its source entry has to the root of the archive.

ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean) ExtractToDirectory(ZipArchive, String, Boolean)

Extrahuje všechny soubory v archivu do adresáře v systému souborů.Extracts all of the files in the archive to a directory on the file system.

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

ZipArchive K extrakci.The ZipArchive to extract.

destinationDirectoryName
String String String String

Cesta k cílovému adresáři v systému souborů.The path to the destination directory on the file system. Cesta může být relativní nebo absolutní.The path can be relative or absolute. Relativní cesta je interpretována jako relativní k aktuálnímu pracovnímu adresáři.A relative path is interpreted as relative to the current working directory.

overwriteFiles
Boolean Boolean Boolean Boolean

truepro indikaci, že existující soubory mají být přepsány. false v opačném případě.true to indicate that existing files are to be overwritten; false otherwise.

Výjimky

destinationArchiveFileNameje řetězec s nulovou délkou, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků, InvalidPathCharsjak jsou definovány v.destinationArchiveFileName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

destinationArchiveFileNameje null.destinationArchiveFileName is null.

Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.The specified path, file name, or both exceed the system-defined maximum length.

Zadaná cesta je neplatná (například se nachází na nenamapované jednotce).The specified path is invalid, (for example, it is on an unmapped drive).

Název ZipArchiveEntry má nulovou délku, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků, jak jsou definovány v InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-nebo--or-

Výsledkem extrakce destinationArchiveFileNamebybyl cílový soubor, který je mimo (například pokud název položky obsahuje přistupující objekty nadřazeného adresáře). ZipArchiveEntryExtracting a ZipArchiveEntry would have resulted in a destination file that is outside destinationArchiveFileName (for example, if the entry name contains parent directory accessors).

-nebo--or-

ZipArchiveEntry Má stejný název jako již extrahovaná položka ze stejného archivu.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

Volající nemá požadované oprávnění.The caller does not have the required permission.

destinationArchiveFileNamemá neplatný formát.destinationArchiveFileName is in an invalid format.

Objekt ZipArchiveEntry nebyl nalezen nebo byl poškozen.A ZipArchiveEntry was not found or was corrupt.

-nebo--or-

A ZipArchiveEntry byl komprimován pomocí kompresní metody, která není podporována.A ZipArchiveEntry has been compressed using a compression method that is not supported.

Poznámky

Zadaný adresář již pravděpodobně existuje.The specified directory may already exist. Tato metoda vytvoří zadaný adresář a všechny podadresáře, pokud je to nutné.This method will create the specified directory and all subdirectories if necessary.

Pokud při extrakci archivu dojde k chybě, archiv zůstane částečně extrahován.If there is an error while extracting the archive, the archive will remain partially extracted.

Každá položka bude extrahována tak, že extrahovaný soubor má stejnou relativní cestu destinationDirectoryName , jako by položka měla kořen archivu.Each entry will be extracted such that the extracted file has the same relative path to destinationDirectoryName as the entry has to the root of the archive.

Pokud soubor, který chcete archivovat, má neplatný čas poslední změny, použije se první datum a čas ve formátu časového razítka zip (půlnoc od 1. ledna 1980).If a file to be archived has an invalid last modified time, the first date and time representable in the Zip timestamp format (midnight on January 1, 1980) will be used.

Platí pro