ZipFileExtensions.ExtractToDirectory Метод

Определение

Перегрузки

ExtractToDirectory(ZipArchive, String)

Извлекает все файлы из ZIP-архива в каталог в файловой системе.Extracts all the files in the zip archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String, Boolean)

Извлекает все файлы в архиве в каталог в файловой системе.Extracts all of the files in the archive to a directory on the file system.

ExtractToDirectory(ZipArchive, String)

Извлекает все файлы из ZIP-архива в каталог в файловой системе.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)

Параметры

source
ZipArchive

ZIP-архив, из которого нужно извлечь файлы.The zip archive to extract files from.

destinationDirectoryName
String

Путь к каталогу, в который нужно поместить извлеченные файлы.The path to the directory to place the extracted files in. Можно указать относительный или абсолютный путь.You can specify either a relative or an absolute path. Относительный путь интерпретируется относительно текущего рабочего каталога.A relative path is interpreted as relative to the current working directory.

Исключения

destinationDirectoryName имеет значение Empty, содержит только пробел или по крайней мере один недопустимый символ.destinationDirectoryName is Empty, contains only white space, or contains at least one invalid character.

destinationDirectoryName имеет значение null.destinationDirectoryName is null.

Длина указанного пути превышает максимальную длину, определенную в системе.The specified path exceeds the system-defined maximum length.

Указанный путь недопустим (например, он соответствует неподключенному диску).The specified path is invalid (for example, it is on an unmapped drive).

Каталог, заданный параметром destinationDirectoryName, уже существует.The directory specified by destinationDirectoryName already exists.

-или--or- Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.The name of an entry in the archive is Empty, contains only white space, or contains at least one invalid character.

-или--or- При извлечении записи из архива будет создан файл, который находится вне каталога, заданного параметром destinationDirectoryName.Extracting an entry from the archive would create a file that is outside the directory specified by destinationDirectoryName. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)(For example, this might happen if the entry name contains parent directory accessors.) -или--or- Две или несколько записей в архиве имеют одинаковые имена.Two or more entries in the archive have the same name.

У вызывающего объекта нет необходимого разрешения для записи в каталог назначения.The caller does not have the required permission to write to the destination directory.

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

Запись архива не найдена или повреждена.An archive entry cannot be found or is corrupt.

-или--or-

Запись архива была сжата с помощью неподдерживаемого метода сжатия.An archive entry was compressed by using a compression method that is not supported.

Примеры

В следующем примере показано, как создать новую запись в ZIP-архиве на основе существующего файла и извлечь архив в новый каталог.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. Для компиляции этого примера кода необходимо ссылаться на System.IO.Compression System.IO.Compression.FileSystem сборки и в проекте.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

Комментарии

Этот метод создает каталог, заданный параметром destinationDirectoryName .This method creates the directory specified by destinationDirectoryName. Если целевой каталог уже существует, этот метод не перезаписывает его. Он создает IOException исключение.If the destination directory already exists, this method does not overwrite it; it throws an IOException exception. Этот метод также создает подкаталоги, отражающие иерархию в ZIP-архиве.The method also creates subdirectories that reflect the hierarchy in the zip archive. Если во время извлечения возникает ошибка, архив остается частично извлеченным.If an error occurs during extraction, the archive remains partially extracted. Каждый извлеченный файл имеет тот же относительный путь к каталогу, который указан в destinationDirectoryName качестве исходной записи в корневую папку архива.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)

Извлекает все файлы в архиве в каталог в файловой системе.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)

Параметры

source
ZipArchive

Извлекаемый ZipArchive.The ZipArchive to extract.

destinationDirectoryName
String

Путь к целевому каталогу в файловой системе.The path to the destination directory on the file system. Путь может быть как относительным, так и абсолютным.The path can be relative or absolute. Относительный путь интерпретируется относительно текущего рабочего каталога.A relative path is interpreted as relative to the current working directory.

overwriteFiles
Boolean

true указывает, что существующие файлы должны быть перезаписаны; в противном случае — false.true to indicate that existing files are to be overwritten; false otherwise.

Исключения

destinationArchiveFileName представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.destinationArchiveFileName is a zero-length string, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

destinationArchiveFileName имеет значение null.destinationArchiveFileName is null.

Указанный путь, имя файла или оба значения превышают максимальную длину, заданную в системе.The specified path, file name, or both exceed the system-defined maximum length.

Указан недопустимый путь (например, он ведет на несопоставленный диск).The specified path is invalid, (for example, it is on an unmapped drive).

Имя ZipArchiveEntry имеет нулевую длину, содержит только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.The name of a ZipArchiveEntry is zero-length, contains only whitespace, or contains one or more invalid characters as defined by InvalidPathChars.

-или--or-

Извлечение объекта ZipArchiveEntry привело бы к тому, что целевой файл оказался бы за пределами destinationArchiveFileName (например, если имя записи содержит методы доступа к родительскому каталогу).Extracting a ZipArchiveEntry would have resulted in a destination file that is outside destinationArchiveFileName (for example, if the entry name contains parent directory accessors).

-или--or-

ZipArchiveEntry имеет то же имя, что и уже извлеченная запись из того же архива.A ZipArchiveEntry has the same name as an already extracted entry from the same archive.

У вызывающего объекта отсутствует необходимое разрешение.The caller does not have the required permission.

Параметр destinationArchiveFileName задан в недопустимом формате.destinationArchiveFileName is in an invalid format.

ZipArchiveEntry поврежден или не может быть найден.A ZipArchiveEntry was not found or was corrupt.

-или--or-

ZipArchiveEntry сжат с помощью неподдерживаемого метода сжатия.A ZipArchiveEntry has been compressed using a compression method that is not supported.

Комментарии

Указанный каталог может уже существовать.The specified directory may already exist. При необходимости этот метод создаст указанный каталог и все подкаталоги.This method will create the specified directory and all subdirectories if necessary.

Если при извлечении архива возникла ошибка, архив будет извлечен частично.If there is an error while extracting the archive, the archive will remain partially extracted.

Каждая запись будет извлечена таким образом, что извлеченный файл имеет тот же относительный путь, что и запись, к destinationDirectoryName корню архива.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.

Если файл для архивации имеет неверное время последнего изменения, то будет использоваться первая дата и время, представленные в формате метки времени ZIP (полночь 1 января 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.

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