ZipFileExtensions.ExtractToDirectory Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wyodrębnia wszystkie pliki z archiwum do katalogu w systemie plików.
Przeciążenia
| Nazwisko | Opis |
|---|---|
| ExtractToDirectory(ZipArchive, String, ZipExtractionOptions) | |
| ExtractToDirectory(ZipArchive, String, Boolean) |
Wyodrębnia wszystkie pliki z archiwum do katalogu w systemie plików. |
| ExtractToDirectory(ZipArchive, String) |
Wyodrębnia wszystkie pliki z archiwum zip do katalogu w systemie plików. |
ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)
public:
[System::Runtime::CompilerServices::Extension]
static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * System.IO.Compression.ZipExtractionOptions -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, options As ZipExtractionOptions)
Parametry
- source
- ZipArchive
- destinationDirectoryName
- String
Ścieżka do katalogu, w którym mają być przechowywane wyodrębnione pliki. Katalog może już istnieć. Brakujące katalogi są tworzone zgodnie z potrzebami podczas wyodrębniania wpisów.
- options
- ZipExtractionOptions
Uwagi
Warning
Ta metoda nie może służyć do wyodrębniania niezaufanych archiwów. Nie wymusza żadnych limitów rozmiaru, limitów liczby wpisów ani innych zasad potrzebnych do bezpiecznego wyodrębniania niezaufanych archiwów. Aby uzyskać więcej informacji na temat bezpiecznego wyodrębniania archiwów z niezaufanych źródeł, zobacz Najlepsze rozwiązania dotyczące korzystania z archiwów zip i tar.
Katalog określony przez destinationDirectoryName program może już istnieć. Ta metoda tworzy katalog docelowy, jego brakujące katalogi nadrzędne i podkatalogi zgodnie z potrzebami podczas wyodrębniania wpisów. Jeśli archiwum jest puste, ta metoda nie tworzy katalogu docelowego.
Każdy wyodrębniony plik ma taką samą ścieżkę względną jak destinationDirectoryName jego wpis źródłowy musi mieć katalog główny archiwum.
Parametr destinationDirectoryName akceptuje ścieżki względne i bezwzględne. Ścieżka względna jest interpretowana jako względna względem bieżącego katalogu roboczego.
Jeśli podczas wyodrębniania wystąpi błąd, archiwum pozostanie częściowo wyodrębnione.
Ustaw OverwriteFiles wartość na , aby true zastąpić istniejące pliki. Wartość domyślna to false, co powoduje, że wyodrębnianie zgłasza błąd IOException , jeśli plik do wyodrębnienia już istnieje.
Użyj Password polecenia , aby podać hasło dla zaszyfrowanych wpisów.
EntryNameEncoding nie jest używany przez to przeciążenie. Nazwy wpisów i komentarze są dekodowane przy użyciu kodowania określonego podczas otwierania source archiwum.
Łącza symboliczne w archiwum nie są tworzone ponownie jako łącza symboliczne. Jeśli destinationDirectoryName lub którykolwiek z katalogów nadrzędnych jest wstępnie istniejącym połączeniem lub łączem symbolicznym, następuje link i wyodrębnianie zapisów do końcowego folderu docelowego.
Dotyczy
ExtractToDirectory(ZipArchive, String, Boolean)
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. Katalog może już istnieć. Brakujące katalogi są tworzone zgodnie z potrzebami podczas wyodrębniania wpisów.
- overwriteFiles
- Boolean
true aby zastąpić istniejące pliki; false Inaczej.
Wyjątki
destinationDirectoryName jest ciągiem o zerowej długości, zawiera tylko biały znak lub zawiera jeden lub więcej nieprawidłowych znaków zdefiniowanych przez InvalidPathChars.
Parametr destinationDirectoryName ma wartość null.
Określona ścieżka, nazwa pliku lub obie metody 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ę poza destinationDirectoryName (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 ma wymaganych uprawnień.
destinationDirectoryName jest w nieprawidłowym formacie.
Nie ZipArchiveEntry znaleziono pliku lub został uszkodzony.
— lub —
Element ZipArchiveEntry został skompresowany przy użyciu metody kompresji, która nie jest obsługiwana.
Uwagi
Warning
Ta metoda nie może służyć do wyodrębniania niezaufanych archiwów. Nie wymusza żadnych limitów rozmiaru, limitów liczby wpisów ani innych zasad potrzebnych do bezpiecznego wyodrębniania niezaufanych archiwów. Aby uzyskać więcej informacji na temat bezpiecznego wyodrębniania archiwów z niezaufanych źródeł, zobacz Najlepsze rozwiązania dotyczące korzystania z archiwów zip i tar.
Katalog określony przez destinationDirectoryName program może już istnieć. Ta metoda tworzy katalog docelowy, jego brakujące katalogi nadrzędne i podkatalogi zgodnie z potrzebami podczas wyodrębniania wpisów. Jeśli archiwum jest puste, ta metoda nie tworzy katalogu docelowego.
Jeśli podczas wyodrębniania archiwum wystąpi błąd, archiwum pozostanie częściowo wyodrębnione.
Każdy wpis jest wyodrębniany, tak aby wyodrębniony plik miał 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
ExtractToDirectory(ZipArchive, String)
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. Katalog może już istnieć. Brakujące katalogi są tworzone zgodnie z potrzebami podczas wyodrębniania wpisów.
Wyjątki
destinationDirectoryName to Empty, zawiera tylko białe znaki lub zawiera co najmniej jeden nieprawidłowy znak.
Parametr destinationDirectoryName ma wartość 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 destinationDirectoryName. (Na przykład może się tak 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 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
Warning
Ta metoda nie może służyć do wyodrębniania niezaufanych archiwów. Nie wymusza żadnych limitów rozmiaru, limitów liczby wpisów ani innych zasad potrzebnych do bezpiecznego wyodrębniania niezaufanych archiwów. Aby uzyskać więcej informacji na temat bezpiecznego wyodrębniania archiwów z niezaufanych źródeł, zobacz Najlepsze rozwiązania dotyczące korzystania z archiwów zip i tar.
Katalog określony przez destinationDirectoryName program może już istnieć. Ta metoda tworzy katalog docelowy, jego brakujące katalogi nadrzędne i podkatalogi zgodnie z potrzebami podczas wyodrębniania wpisów. Jeśli archiwum jest puste, ta metoda nie tworzy katalogu docelowego.
Jeśli podczas wyodrębniania wystąpi błąd, archiwum pozostanie częściowo wyodrębnione. Każdy wyodrębniony plik ma tę samą ścieżkę względną do katalogu określonego przez destinationDirectoryName jako jego wpis źródłowy musi być katalog główny archiwum.