ZipFileExtensions.ExtractToDirectory Metoda

Definicja

Przeciążenia

ExtractToDirectory(ZipArchive, String)

Wyodrębnia wszystkie pliki z archiwum zip do katalogu w systemie plików.

ExtractToDirectory(ZipArchive, String, Boolean)

Wyodrębnia wszystkie pliki z archiwum do katalogu w systemie plików.

ExtractToDirectory(ZipArchive, String)

Źródło:
ZipFileExtensions.ZipArchive.Extract.cs
Źródło:
ZipFileExtensions.ZipArchive.Extract.cs
Źródło:
ZipFileExtensions.ZipArchive.Extract.cs

Wyodrębnia wszystkie pliki z archiwum zip do katalogu w systemie plików.

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

Archiwum zip do wyodrębniania plików.

destinationDirectoryName
String

Ścieżka do katalogu w celu umieszczenia wyodrębnionych plików. Można określić względną lub bezwzględną ścieżkę. Ścieżka względna jest interpretowana jako względna względem bieżącego katalogu roboczego.

Wyjątki

destinationDirectoryName to Empty, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak.

destinationDirectoryName to null.

Określona ścieżka przekracza maksymalną długość zdefiniowaną przez system.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).

Nazwa wpisu w archiwum to Empty, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak.

-lub-

Wyodrębnienie wpisu z archiwum spowoduje utworzenie pliku spoza katalogu określonego przez destinationDirectoryNamepolecenie . (Na przykład może się to zdarzyć, jeśli nazwa wpisu zawiera metody dostępu do katalogu nadrzędnego).

-lub-

Co najmniej dwa wpisy w archiwum mają taką samą nazwę.

Obiekt wywołujący nie ma wymaganych uprawnień do zapisu w katalogu docelowym.

destinationDirectoryName zawiera nieprawidłowy format.

Nie można odnaleźć wpisu archiwum lub jest on uszkodzony.

-lub-

Wpis archiwum został skompresowany przy użyciu metody kompresji, która nie jest obsługiwana.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć nowy wpis w archiwum zip z istniejącego pliku i wyodrębnić archiwum do nowego katalogu.

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

Uwagi

Ta metoda tworzy katalog określony przez destinationDirectoryName. Metoda tworzy również podkatalogi odzwierciedlające hierarchię w archiwum zip. Jeśli podczas wyodrębniania wystąpi błąd, archiwum pozostanie częściowo wyodrębnione. Każdy wyodrębniony plik ma taką samą ścieżkę względną do katalogu określonego przez destinationDirectoryName , ponieważ jego wpis źródłowy musi być katalogem głównym archiwum.

Dotyczy

ExtractToDirectory(ZipArchive, String, Boolean)

Źródło:
ZipFileExtensions.ZipArchive.Extract.cs
Źródło:
ZipFileExtensions.ZipArchive.Extract.cs
Źródło:
ZipFileExtensions.ZipArchive.Extract.cs

Wyodrębnia wszystkie pliki z archiwum do katalogu w systemie plików.

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

Element ZipArchive do wyodrębnienia.

destinationDirectoryName
String

Ścieżka do katalogu docelowego w systemie plików. Ścieżka może być względna lub bezwzględna. Ścieżka względna jest interpretowana jako względna względem bieżącego katalogu roboczego.

overwriteFiles
Boolean

true aby zastąpić istniejące pliki; false Inaczej.

Wyjątki

destinationArchiveFileName jest ciągiem o zerowej długości, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak zdefiniowany przez InvalidPathChars.

destinationArchiveFileName to null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na niezamapowanym dysku).

Nazwa elementu ZipArchiveEntry to zero-length, zawiera tylko białe znaki lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych przez InvalidPathChars.

-lub-

Wyodrębnienie elementu ZipArchiveEntry spowodowałoby, że plik docelowy znajduje się na zewnątrz destinationArchiveFileName (na przykład jeśli nazwa wpisu zawiera metody dostępu do katalogu nadrzędnego).

-lub-

Obiekt ZipArchiveEntry ma taką samą nazwę jak już wyodrębniony wpis z tego samego archiwum.

Obiekt wywołujący nie posiada wymaganych uprawnień.

destinationArchiveFileName jest w nieprawidłowym formacie.

Nie ZipArchiveEntry można odnaleźć pliku lub był uszkodzony.

-lub-

Element ZipArchiveEntry został skompresowany przy użyciu metody kompresji, która nie jest obsługiwana.

Uwagi

Określony katalog może już istnieć. Ta metoda tworzy określony katalog i wszystkie podkatalogi w razie potrzeby.

Jeśli podczas wyodrębniania archiwum wystąpi błąd, archiwum pozostanie częściowo wyodrębnione.

Każdy wpis jest wyodrębniany w taki sposób, że wyodrębniony plik ma taką samą ścieżkę względną, do destinationDirectoryName której wpis musi pochodzić z katalogu głównego archiwum.

Jeśli plik do zarchiwizowania ma nieprawidłową godzinę ostatniej modyfikacji, zostanie użyta pierwsza data i godzina w formacie znacznika czasu zip (północ 1 stycznia 1980 r.).

Dotyczy