ZipFileExtensions.ExtractToDirectory Метод

Определение

Перегрузки

Имя Описание
ExtractToDirectory(ZipArchive, String)

Извлекает все файлы в ZIP-архив в каталог файловой системы.

ExtractToDirectory(ZipArchive, String, Boolean)

Извлекает все файлы в архив в каталог файловой системы.

ExtractToDirectory(ZipArchive, String)

Извлекает все файлы в ZIP-архив в каталог файловой системы.

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)

Параметры

source
ZipArchive

Zip-архив для извлечения файлов из.

destinationDirectoryName
String

Путь к каталогу для размещения извлеченных файлов. Можно указать относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.

Исключения

destinationDirectoryName is Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.

destinationDirectoryName равно null.

Указанный путь превышает определенную системой максимальную длину.

Указанный путь недопустим (например, он находится на несопоставленном диске).

Имя записи в архиве Empty: содержит только пробелы или содержит по крайней мере один недопустимый символ.

–или–

Извлечение записи из архива создаст файл, который находится за пределами каталога, указанного в destinationDirectoryNameфайле. (Например, это может произойти, если имя записи содержит родительские методы доступа к каталогу.)

–или–

Два или более записей в архиве имеют одинаковое имя.

Вызывающий объект не имеет требуемого разрешения на запись в целевой каталог.

destinationDirectoryName содержит недопустимый формат.

Архивная запись не найдена или повреждена.

–или–

Запись архива была сжата с помощью метода сжатия, который не поддерживается.

Примеры

В следующем примере показано, как создать запись в ZIP-архиве из существующего файла и извлечь архив в новый каталог.

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

Комментарии

Этот метод создает каталог, указанный destinationDirectoryNameв . Метод также создает вложенные каталоги, которые отражают иерархию в ZIP-архиве. Если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет тот же относительный путь к каталогу, указанному destinationDirectoryName в качестве исходной записи, имеет корень архива.

Применяется к

ExtractToDirectory(ZipArchive, String, Boolean)

Извлекает все файлы в архив в каталог файловой системы.

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)

Параметры

source
ZipArchive

Извлекаемая ZipArchive .

destinationDirectoryName
String

Путь к целевому каталогу в файловой системе. Путь может быть как относительным, так и абсолютным. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.

overwriteFiles
Boolean

true для перезаписи существующих файлов; false Иначе.

Исключения

destinationDirectoryName — строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, как определено InvalidPathChars.

destinationDirectoryName равно null.

Указанный путь, имя файла или оба превышают определенную системой максимальную длину.

Указанный путь недопустим (например, он находится на несопоставленном диске).

Имя нулевой ZipArchiveEntry длины, содержит только пробелы или содержит один или несколько недопустимых символов, как определено InvalidPathChars.

–или–

Извлечение ZipArchiveEntry могло бы привести к конечному файлу, который находится вне destinationDirectoryName (например, если имя записи содержит родительские методы доступа к каталогу).

–или–

Имя ZipArchiveEntry имеет то же имя, что и уже извлеченная запись из того же архива.

Вызывающий объект не имеет требуемого разрешения.

destinationDirectoryName имеет недопустимый формат.

Не ZipArchiveEntry найден или поврежден.

–или–

A ZipArchiveEntry был сжатым с помощью метода сжатия, который не поддерживается.

Комментарии

Указанный каталог уже может существовать. При необходимости этот метод создает указанный каталог и все вложенные каталоги.

Если при извлечении архива возникает ошибка, архив останется частично извлеченным.

Каждая запись извлекается таким образом, что извлеченный файл имеет тот же относительный путь, что destinationDirectoryName и запись к корню архива.

Если архивируемый файл имеет недопустимое время последнего изменения, используется первая дата и время, представленные в формате метки времени ZIP (полночь 1 января 1980 г.).

Применяется к