ZipFile.ExtractToDirectory Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает все файлы в указанном ZIP-архиве в каталогу в файловой системе.
Перегрузки
ExtractToDirectory(String, String, Encoding, Boolean) |
Извлекает все файлы в указанном архиве в каталоге в файловой системе. |
ExtractToDirectory(Stream, String, Encoding, Boolean) |
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог файловой системы, использует указанную кодировку символов для имен записей и при необходимости позволяет выбрать, следует ли перезаписывать файлы в целевом каталоге. |
ExtractToDirectory(String, String, Encoding) |
Извлекает все файлы в указанном ZIP-архиве к каталог в файловой системе и использует указанную кодировку для имен записей. |
ExtractToDirectory(String, String, Boolean) |
Извлекает все файлы в указанном архиве в каталоге в файловой системе. |
ExtractToDirectory(Stream, String, Boolean) |
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе и при необходимости позволяет выбрать, следует ли перезаписывать файлы в целевом каталоге. |
ExtractToDirectory(String, String) |
Извлекает все файлы в указанном ZIP-архиве в каталогу в файловой системе. |
ExtractToDirectory(Stream, String) |
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог файловой системы. |
ExtractToDirectory(Stream, String, Encoding) |
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, помещает их в указанный целевой каталог в файловой системе и использует указанную кодировку символов для имен записей. |
ExtractToDirectory(String, String, Encoding, Boolean)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы в указанном архиве в каталоге в файловой системе.
public:
static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)
Параметры
- sourceArchiveFileName
- String
Путь в файловой системе к архиву, который требуется извлечь.
- destinationDirectoryName
- String
Путь к целевому каталогу в файловой системе.
- entryNameEncoding
- Encoding
Кодирование, используемое при чтении имен записей в этом ZipArchive.
- overwriteFiles
- Boolean
Значение true
для перезаписи файлов; в противном случае — значение false
.
Исключения
sourceArchiveFileName
или destinationDirectoryName
представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.
-или-
entryNameEncoding
установлено на кодировку Юникода, отличное от UTF-8.
Параметр sourceArchiveFileName
или destinationDirectoryName
имеет значение null
.
sourceArchiveFileName
или destinationDirectoryName
указывает путь, имя файла или оба параметра, которые превышают установленное в системе максимальное значение.
Путь, указанный sourceArchiveFileName
или destinationDirectoryName
, является недопустимым (например, он ведет на несопоставленный диск).
overwriteFiles
имеет значение , false
а архивная запись для извлечения имеет то же имя, что и файл, который уже существует в destinationDirectoryName
.
-или-
Произошла ошибка ввода-вывода.
-или-
Имя ZipArchiveEntry имеет нулевую длину, содержит только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.
-или-
Извлечение ZipArchiveEntry может привести к назначению файла, находящегося за пределами целевого каталога (например, из-за наличия методов доступа к родительскому каталогу).
-или-
ZipArchiveEntry имеет то же имя, что и уже извлеченная запись из того же архива.
У вызывающего объекта отсутствует необходимое разрешение.
Параметр sourceArchiveFileName
или destinationDirectoryName
имеет недопустимый формат.
Не удалось найти sourceArchiveFileName
.
Архив, заданный параметром sourceArchiveFileName
, не является допустимым ZipArchive.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с использованием неподдерживаемого метода сжатия.
Комментарии
При возникновении ошибки при извлечении архива архив останется частично извлеченным.
Каждая запись будет извлечена таким образом, что извлеченный файл имеет тот же относительный путь к , destinationDirectoryName
что и запись к архиву.
Параметры sourceArchiveFileName
и destinationDirectoryName
принимают как относительные, так и абсолютные пути. Относительный путь интерпретируется относительно текущего рабочего каталога.
Если архивируемый файл имеет недопустимое время последнего изменения, будут использоваться первые дата и время, представленные в формате zip метки времени (полночь 1 января 1980 г.).
Применяется к
ExtractToDirectory(Stream, String, Encoding, Boolean)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог файловой системы, использует указанную кодировку символов для имен записей и при необходимости позволяет выбрать, следует ли перезаписывать файлы в целевом каталоге.
public:
static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)
Параметры
- source
- Stream
Поток, из которого извлекается ZIP-архив.
- destinationDirectoryName
- String
Путь к каталогу, в котором следует поместить извлеченные файлы, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.
- entryNameEncoding
- Encoding
Кодирование, используемое при чтении или записи имен записей в этом архиве. Задайте значение для этого параметра, только если кодирование требуется для взаимодействия с инструментами и библиотеками ZIP-архива, которые не поддерживают кодирование UTF-8 для имен записей.
- overwriteFiles
- Boolean
Значение true
для перезаписи файлов; в противном случае — значение false
.
Исключения
destinationDirectoryName
> имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
entryNameEncoding
установлено на кодировку Юникода, отличное от UTF-8.
Параметр destinationDirectoryName
или source
имеет значение null
.
Указанный путь в destinationDirectoryName
превышает максимальную длину, определенную системой.
Указан недопустимый путь (например, он ведет на несопоставленный диск).
Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
Извлечение записи архива создаст файл, который находится вне каталога, заданного destinationDirectoryName
. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)
-или-
overwriteFiles
Имеет значение , false
а архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена или существует в destinationDirectoryName
.
Вызывающий код не имеет необходимого разрешения на доступ к архиву или целевому каталогу.
destinationDirectoryName
содержит недопустимый формат.
Архив, содержащийся в потоке, source
не является допустимым ZIP-архивом.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с помощью неподдерживаемого метода сжатия.
Комментарии
Этот метод создает указанный каталог и все подкаталоги. Целевой каталог не может существовать. Перед извлечением создаются исключения, связанные с проверкой путей в destinationDirectoryName
или файлов в ZIP-архиве, содержащихся в source
параметрах. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет одинаковый относительный путь к каталогу, указанному параметром , destinationDirectoryName
так как его исходная запись относится к корню архива. Если архивируемый файл имеет недопустимое время последнего изменения, будут использоваться первые дата и время, представленные в формате zip метки времени (полночь 1 января 1980 г.).
Применяется к
ExtractToDirectory(String, String, Encoding)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы в указанном ZIP-архиве к каталог в файловой системе и использует указанную кодировку для имен записей.
public:
static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)
Параметры
- sourceArchiveFileName
- String
Путь к архиву, который требуется извлечь.
- destinationDirectoryName
- String
Путь к каталогу, в котором следует поместить извлеченные файлы, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.
- entryNameEncoding
- Encoding
Кодирование, используемое при чтении или записи имен записей в этом архиве. Задайте значение для этого параметра, только если кодирование требуется для взаимодействия с инструментами и библиотеками ZIP-архива, которые не поддерживают кодирование UTF-8 для имен записей.
Исключения
Параметр destinationDirectoryName
или sourceArchiveFileName
является Empty, содержит только пробелы или хотя бы один недопустимый символ.
-или-
entryNameEncoding
установлено на кодировку Юникода, отличное от UTF-8.
Параметр destinationDirectoryName
или sourceArchiveFileName
имеет значение null
.
Указанная длина пути в destinationDirectoryName
или sourceArchiveFileName
превышает максимальную длину, определенную в системе.
Указанный путь недопустим (например, он соответствует неподключенному диску).
Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
Извлечение записи архива создаст файл, который находится вне каталога, заданного destinationDirectoryName
. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)
-или-
Архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена или существует в destinationDirectoryName
.
Вызывающий код не имеет необходимого разрешения на доступ к архиву или целевому каталогу.
destinationDirectoryName
или sourceArchiveFileName
содержит недопустимый формат.
Не удалось найти sourceArchiveFileName
.
Архив, заданный параметром sourceArchiveFileName
, не является допустимым ZIP-архивом.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с помощью неподдерживаемого метода сжатия.
Комментарии
При необходимости этот метод создает указанный каталог и все подкаталоги. Перед извлечением создаются исключения, связанные с проверкой destinationDirectoryName
путей в параметрах или sourceArchiveFileName
. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет одинаковый относительный путь к каталогу, указанному параметром , destinationDirectoryName
так как его исходная запись относится к корню архива.
Если entryNameEncoding
для задано значение, отличное null
от , имена записей декодируются в соответствии со следующими правилами:
- Для имен записей, где флаг кодировки языка (в битовом флаге общего назначения заголовка локального файла) не задан, имена записей декодируются с использованием указанной кодировки.
- Для записей, для которых установлен флаг кодировки языка, имена записей декодируются с помощью UTF-8.
Если entryNameEncoding
для задано значение null
, имена записей декодируются в соответствии со следующими правилами:
- Для записей, в которых флаг кодировки языка (в битовом флаге общего назначения заголовка локального файла) не задан, имена записей декодируются с помощью текущей системной кодовой страницы по умолчанию.
- Для записей, для которых установлен флаг кодировки языка, имена записей декодируются с помощью UTF-8.
Применяется к
ExtractToDirectory(String, String, Boolean)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы в указанном архиве в каталоге в файловой системе.
public:
static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)
Параметры
- sourceArchiveFileName
- String
Путь в файловой системе к архиву, который требуется извлечь.
- destinationDirectoryName
- String
Путь к целевому каталогу в файловой системе.
- overwriteFiles
- Boolean
Значение true
для перезаписи файлов; в противном случае — значение false
.
Исключения
sourceArchiveFileName
или destinationDirectoryName
представляет собой строку нулевой длины, содержащую только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.
Параметр sourceArchiveFileName
или destinationDirectoryName
имеет значение null
.
sourceArchiveFileName
или destinationDirectoryName
указывает путь, имя файла или оба параметра, которые превышают установленное в системе максимальное значение.
Путь, указанный sourceArchiveFileName
или destinationDirectoryName
, является недопустимым (например, он ведет на несопоставленный диск).
overwriteFiles
имеет значение false
и уже содержит файл с тем же именем, что и destinationDirectoryName
извлекаемый файл.
-или-
Произошла ошибка ввода-вывода.
-или-
Имя ZipArchiveEntry имеет нулевую длину, содержит только пробелы или один или несколько недопустимых символов, заданных методом InvalidPathChars.
-или-
Извлечение ZipArchiveEntry может привести к назначению файла, находящегося за пределами целевого каталога (например, из-за наличия методов доступа к родительскому каталогу).
-или-
Имеет ZipArchiveEntry то же имя, что и запись из того же архива, который уже был извлечен.
У вызывающего объекта отсутствует необходимое разрешение.
Параметр sourceArchiveFileName
или destinationDirectoryName
имеет недопустимый формат.
Не удалось найти sourceArchiveFileName
.
Архив, заданный параметром sourceArchiveFileName
, не является допустимым ZipArchive.
-или-
ZipArchiveEntry поврежден или не может быть найден.
-или-
ZipArchiveEntry сжат с помощью неподдерживаемого метода сжатия.
Комментарии
При возникновении ошибки при извлечении архива архив останется частично извлеченным.
Каждая запись будет извлечена таким образом, что извлеченный файл имеет тот же относительный путь к , destinationDirectoryName
что и запись к архиву.
Параметры sourceArchiveFileName
и destinationDirectoryName
принимают как относительные, так и абсолютные пути. Относительный путь интерпретируется относительно текущего рабочего каталога.
Если архивируемый файл имеет недопустимое время последнего изменения, будут использоваться первые дата и время, представленные в формате zip метки времени (полночь 1 января 1980 г.).
Применяется к
ExtractToDirectory(Stream, String, Boolean)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе и при необходимости позволяет выбрать, следует ли перезаписывать файлы в целевом каталоге.
public:
static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean)
Параметры
- source
- Stream
Поток, из которого извлекается ZIP-архив.
- destinationDirectoryName
- String
Путь к каталогу, в котором следует поместить извлеченные файлы, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.
- overwriteFiles
- Boolean
Значение true
для перезаписи файлов; в противном случае — значение false
.
Исключения
destinationDirectoryName
> имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
Параметр destinationDirectoryName
или source
имеет значение null
.
Указанный путь в destinationDirectoryName
превышает максимальную длину, определенную системой.
Указан недопустимый путь (например, он ведет на несопоставленный диск).
Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
Извлечение записи архива создаст файл, который находится вне каталога, заданного destinationDirectoryName
. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)
-или-
overwriteFiles
Имеет значение , false
а архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена или существует в destinationDirectoryName
.
Вызывающий код не имеет необходимого разрешения на доступ к архиву или целевому каталогу.
destinationDirectoryName
содержит недопустимый формат.
Архив, содержащийся в потоке, source
не является допустимым ZIP-архивом.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с помощью неподдерживаемого метода сжатия.
Комментарии
Этот метод создает указанный каталог и все подкаталоги. Целевой каталог не может существовать. Перед извлечением создаются исключения, связанные с проверкой путей в destinationDirectoryName
или файлов в ZIP-архиве, содержащихся в source
параметрах. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет одинаковый относительный путь к каталогу, указанному параметром , destinationDirectoryName
так как его исходная запись относится к корню архива. Если архивируемый файл имеет недопустимое время последнего изменения, будут использоваться первые дата и время, представленные в формате zip метки времени (полночь 1 января 1980 г.).
Применяется к
ExtractToDirectory(String, String)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы в указанном ZIP-архиве в каталогу в файловой системе.
public:
static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)
Параметры
- sourceArchiveFileName
- String
Путь к архиву, который требуется извлечь.
- destinationDirectoryName
- String
Путь к каталогу, в котором следует поместить извлеченные файлы, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.
Исключения
Параметр destinationDirectoryName
или sourceArchiveFileName
является Empty, содержит только пробелы или хотя бы один недопустимый символ.
Параметр destinationDirectoryName
или sourceArchiveFileName
имеет значение null
.
Указанная длина пути в destinationDirectoryName
или sourceArchiveFileName
превышает максимальную длину, определенную в системе.
Указанный путь недопустим (например, он соответствует неподключенному диску).
Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
Извлечение записи архива создаст файл, который находится вне каталога, заданного destinationDirectoryName
. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)
-или-
Архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена или существует в destinationDirectoryName
.
Вызывающий код не имеет необходимого разрешения на доступ к архиву или целевому каталогу.
destinationDirectoryName
или sourceArchiveFileName
содержит недопустимый формат.
Не удалось найти sourceArchiveFileName
.
Архив, заданный параметром sourceArchiveFileName
, не является допустимым ZIP-архивом.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с помощью неподдерживаемого метода сжатия.
Примеры
В этом примере показано, как создать и извлечь ZIP-архив с помощью ZipFile класса . Он сжимает содержимое папки в ZIP-архив и извлекает это содержимое в новую папку. Чтобы использовать класс ZipFile, укажите в проекте ссылку на сборку System.IO.Compression.FileSystem
.
using System;
using System.IO.Compression;
class Program
{
static void Main(string[] args)
{
string startPath = @".\start";
string zipPath = @".\result.zip";
string extractPath = @".\extract";
ZipFile.CreateFromDirectory(startPath, zipPath);
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
}
open System.IO.Compression
let startPath = @".\start"
let zipPath = @".\result.zip"
let extractPath = @".\extract"
ZipFile.CreateFromDirectory(startPath, zipPath)
ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO.Compression
Module Module1
Sub Main()
Dim startPath As String = ".\start"
Dim zipPath As String = ".\result.zip"
Dim extractPath As String = ".\extract"
ZipFile.CreateFromDirectory(startPath, zipPath)
ZipFile.ExtractToDirectory(zipPath, extractPath)
End Sub
End Module
Комментарии
Этот метод создает указанный каталог и все подкаталоги. Целевой каталог не может существовать. Перед извлечением создаются исключения, связанные с проверкой путей в destinationDirectoryName
параметрах или sourceArchiveFileName
. В противном случае при возникновении ошибки во время извлечения архив остается частично извлеченным. Каждый извлеченный файл имеет одинаковый относительный путь к каталогу, указанному в параметре , destinationDirectoryName
так как его исходная запись относится к корню архива.
Применяется к
ExtractToDirectory(Stream, String)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе.
public:
static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Stream * string -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String)
Параметры
- source
- Stream
Поток, из которого извлекается ZIP-архив.
- destinationDirectoryName
- String
Путь к каталогу, в котором следует поместить извлеченные файлы, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.
Исключения
destinationDirectoryName
> имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
Параметр destinationDirectoryName
или source
имеет значение null
.
Указанный путь в destinationDirectoryName
превышает максимальную длину, определенную системой.
Указан недопустимый путь (например, он ведет на несопоставленный диск).
Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
Извлечение записи архива создаст файл, который находится вне каталога, заданного destinationDirectoryName
. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)
-или-
Архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена или существует в destinationDirectoryName
.
Вызывающий код не имеет необходимого разрешения на доступ к архиву или целевому каталогу.
destinationDirectoryName
содержит недопустимый формат.
Архив, содержащийся в потоке, source
не является допустимым ZIP-архивом.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с помощью неподдерживаемого метода сжатия.
Комментарии
Этот метод создает указанный каталог и все подкаталоги. Целевой каталог не может существовать. Исключения, связанные с проверкой путей в destinationDirectoryName
или файлов в ZIP-архиве, содержащихся в source
параметрах, создаются перед извлечением. В противном случае при возникновении ошибки во время извлечения архив остается частично извлеченным. Каждый извлеченный файл имеет одинаковый относительный путь к каталогу, указанному в параметре , destinationDirectoryName
так как его исходная запись относится к корню архива. Если архивируемый файл имеет недопустимое время последнего изменения, будут использоваться первая дата и время, представленные в формате Zip timestamp (полночь 1 января 1980 г.).
Применяется к
ExtractToDirectory(Stream, String, Encoding)
- Исходный код:
- ZipFile.Extract.cs
- Исходный код:
- ZipFile.Extract.cs
Извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе и использует указанную кодировку символов для имен записей.
public:
static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding)
Параметры
- source
- Stream
Поток, из которого извлекается ZIP-архив.
- destinationDirectoryName
- String
Путь к каталогу, в котором следует поместить извлеченные файлы, заданный как относительный или абсолютный путь. Относительный путь интерпретируется относительно текущего рабочего каталога.
- entryNameEncoding
- Encoding
Кодирование, используемое при чтении или записи имен записей в этом архиве. Задайте значение для этого параметра, только если кодирование требуется для взаимодействия с инструментами и библиотеками ZIP-архива, которые не поддерживают кодирование UTF-8 для имен записей.
Исключения
destinationDirectoryName
> имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
entryNameEncoding
установлено на кодировку Юникода, отличное от UTF-8.
Параметр destinationDirectoryName
или source
имеет значение null
.
Указанный путь в destinationDirectoryName
превышает максимальную длину, определенную системой.
Указан недопустимый путь (например, он ведет на несопоставленный диск).
Имя записи в архиве имеет значение Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
-или-
Извлечение записи архива создаст файл, который находится вне каталога, заданного destinationDirectoryName
. (Например, это может произойти, если имя записи содержит методы доступа родительского каталога.)
-или-
Архивная запись для извлечения имеет то же имя, что и запись, которая уже была извлечена или существует в destinationDirectoryName
.
Вызывающий код не имеет необходимого разрешения на доступ к архиву или целевому каталогу.
destinationDirectoryName
содержит недопустимый формат.
Архив, содержащийся в потоке, source
не является допустимым ZIP-архивом.
-или-
Не удалось найти запись архива или она была повреждена.
-или-
Запись архива была сжата с помощью неподдерживаемого метода сжатия.
Комментарии
Этот метод создает указанный каталог и все подкаталоги. Целевой каталог не может существовать. Исключения, связанные с проверкой путей в destinationDirectoryName
или файлов в ZIP-архиве, содержащихся в source
параметрах, создаются перед извлечением. В противном случае при возникновении ошибки во время извлечения архив остается частично извлеченным. Каждый извлеченный файл имеет одинаковый относительный путь к каталогу, указанному в параметре , destinationDirectoryName
так как его исходная запись относится к корню архива. Если архивируемый файл имеет недопустимое время последнего изменения, будут использоваться первая дата и время, представленные в формате Zip timestamp (полночь 1 января 1980 г.).