ZipFile.ExtractToDirectoryAsync Метод

Определение

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

Перегрузки

Имя Описание
ExtractToDirectoryAsync(String, String, Encoding, Boolean, CancellationToken)

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

Указанный каталог не должен существовать. Этот метод создаст все вложенные каталоги и указанный каталог.

Если при извлечении архива возникает ошибка, архив останется частично извлеченным. Каждая запись будет извлечена таким образом, что извлеченный файл имеет тот же относительный путь к целевомуDirectoryName, что и запись в архив. Путь может указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Если архивируемый файл имеет недопустимое время последнего изменения, будет использоваться первый формат даты и времени, представленный в формате zip-метки времени (полночь 1 января 1980 г.).

ExtractToDirectoryAsync(Stream, String, Encoding, Boolean, CancellationToken)

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

ExtractToDirectoryAsync(String, String, Encoding, CancellationToken)

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

ExtractToDirectoryAsync(String, String, ZipExtractionOptions, CancellationToken)
ExtractToDirectoryAsync(String, String, Boolean, CancellationToken)

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

ExtractToDirectoryAsync(Stream, String, ZipExtractionOptions, CancellationToken)
ExtractToDirectoryAsync(Stream, String, Boolean, CancellationToken)

Асинхронно извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе, а при необходимости позволяет выбрать, следует ли перезаписывать файлы в целевом каталоге.

ExtractToDirectoryAsync(String, String, CancellationToken)

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

ExtractToDirectoryAsync(Stream, String, CancellationToken)

Асинхронно извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе.

ExtractToDirectoryAsync(Stream, String, Encoding, CancellationToken)

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

ExtractToDirectoryAsync(String, String, Encoding, Boolean, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

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

Указанный каталог не должен существовать. Этот метод создаст все вложенные каталоги и указанный каталог.

Если при извлечении архива возникает ошибка, архив останется частично извлеченным. Каждая запись будет извлечена таким образом, что извлеченный файл имеет тот же относительный путь к целевомуDirectoryName, что и запись в архив. Путь может указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Если архивируемый файл имеет недопустимое время последнего изменения, будет использоваться первый формат даты и времени, представленный в формате zip-метки времени (полночь 1 января 1980 г.).

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.Text.Encoding * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

sourceArchiveFileName
String

Путь к архиву в файловой системе, которую необходимо извлечь.

destinationDirectoryName
String

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

entryNameEncoding
Encoding

Кодировка, используемая при чтении или записи имен и комментариев в этом ZIPArchive.

overwriteFiles
Boolean

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

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

sourceArchiveFileName или destinationDirectoryName есть null.

sourceArchiveFileName или destinationDirectoryName задает путь, имя файла или оба значения, превышающие определенную системой максимальную длину. Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.

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

Произошла ошибка ввода-вывода.

–или–

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

–или–

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

–или–

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

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

sourceArchiveFileName или destinationDirectoryName находится в недопустимом формате.

sourceArchiveFileName не найден.

Архив, указанный sourceArchiveFileName не является допустимым ZipArchive.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Если entryNameEncoding задано значение, отличное nullот имени записи и примечаний, декодируются в соответствии со следующими правилами:

  • Для записей, в которых флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла не задано, используйте указанный entryNameEncoding для декодировки имени и комментария записи.
  • Для записей, в которых установлен флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла, используйте UTF-8 (Encoding.UTF8), чтобы декодировать имя записи и комментарий.

Если entryNameEncoding задано значение null, имена и комментарии записей декодируются в соответствии со следующими правилами:

  • Для записей, в которых флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла не задано, используйте текущую кодовую страницу по умолчанию системы (Encoding.Default) для декодировки имени записи и комментария.
  • Для записей, в которых установлен флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла, используйте UTF-8 (Encoding.UTF8), чтобы декодировать имя записи и комментарий.

Кодировки Юникода, отличные от UTF-8, нельзя использовать для entryNameEncoding, в противном случае ArgumentException возникает исключение.

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(Stream, String, Encoding, Boolean, CancellationToken)

Исходный код:
ZipFile.Create.cs
Исходный код:
ZipFile.Extract.Async.cs

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.Text.Encoding * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

source
Stream

Поток, из которого извлекается ZIP-архив.

destinationDirectoryName
String

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

entryNameEncoding
Encoding

Кодировка, используемая при чтении или записи имен и комментариев в этом архиве. Укажите значение этого параметра, только если кодировка требуется для взаимодействия с средствами и библиотеками ZIP-архива, которые не поддерживают кодировку UTF-8 для имен записей или комментариев.

overwriteFiles
Boolean

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

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

–или–

entryNameEncoding для кодировки Юникода, отличной от UTF-8.

destinationDirectoryName или source есть null.

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

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

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

–или–

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

–или–

overwriteFilesfalse и архивная запись для извлечения имеет то же имя, что и запись, которая уже извлечена или в ней существует destinationDirectoryName.

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

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

Архив, содержащийся в потоке source , не является допустимым ZIP-архивом.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Этот метод создает указанный каталог и все вложенные каталоги. Целевой каталог не может существовать. Исключения, связанные с проверкой путей в destinationDirectoryName zip-архиве или файлами, содержащимися в source параметрах, создаются перед извлечением. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет тот же относительный путь к каталогу, указанному destinationDirectoryName в качестве исходной записи, имеет корень архива.

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

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(String, String, Encoding, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

sourceArchiveFileName
String

Путь к архиву в файловой системе, которую необходимо извлечь.

destinationDirectoryName
String

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

entryNameEncoding
Encoding

Кодировка, используемая при чтении или записи имен и комментариев в этом ZIPArchive.

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

sourceArchiveFileName или destinationDirectoryName есть null.

sourceArchiveFileName или destinationDirectoryName задает путь, имя файла или оба значения, превышающие определенную системой максимальную длину. Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.

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

Произошла ошибка ввода-вывода.

–или–

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

–или–

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

–или–

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

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

sourceArchiveFileName или destinationDirectoryName находится в недопустимом формате.

sourceArchiveFileName не найден.

Архив, указанный sourceArchiveFileName не является допустимым ZipArchive.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Указанный каталог не должен существовать. Этот метод создает все вложенные каталоги и указанный каталог.

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

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

Если entryNameEncoding задано значение, отличное nullот имени записи и примечаний, декодируются в соответствии со следующими правилами:

  • Для записей, в которых флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла не задано, используйте указанный entryNameEncoding для декодировки имени и комментария записи.
  • Для записей, в которых установлен флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла, используйте UTF-8 (Encoding.UTF8), чтобы декодировать имя записи и комментарий.

Если entryNameEncoding задано значение null, имена и комментарии записей декодируются в соответствии со следующими правилами:

  • Для записей, в которых флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла не задано, используйте текущую кодовую страницу по умолчанию системы (Encoding.Default) для декодировки имени записи и комментария.
  • Для записей, в которых установлен флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла, используйте UTF-8 (Encoding.UTF8), чтобы декодировать имя записи и комментарий.

Кодировки Юникода, отличные от UTF-8, нельзя использовать для entryNameEncoding, в противном случае ArgumentException возникает исключение.

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(String, String, ZipExtractionOptions, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.IO.Compression.ZipExtractionOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, options As ZipExtractionOptions, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

sourceArchiveFileName
String
destinationDirectoryName
String
cancellationToken
CancellationToken

Возвращаемое значение

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

ExtractToDirectoryAsync(String, String, Boolean, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

sourceArchiveFileName
String

Путь к архиву в файловой системе, которую необходимо извлечь.

destinationDirectoryName
String

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

overwriteFiles
Boolean

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

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

sourceArchiveFileName или destinationDirectoryName есть null.

sourceArchiveFileName или destinationDirectoryName задает путь, имя файла или оба значения, превышающие определенную системой максимальную длину. Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.

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

Произошла ошибка ввода-вывода.

–или–

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

–или–

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

–или–

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

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

sourceArchiveFileName или destinationDirectoryName находится в недопустимом формате.

sourceArchiveFileName не найден.

sourceArchiveFileName недопустимый ZIPArchive.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Указанный каталог не должен существовать. Этот метод создает все вложенные каталоги и указанный каталог.

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

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

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(Stream, String, ZipExtractionOptions, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.IO.Compression.ZipExtractionOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, options As ZipExtractionOptions, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

source
Stream
destinationDirectoryName
String
cancellationToken
CancellationToken

Возвращаемое значение

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

ExtractToDirectoryAsync(Stream, String, Boolean, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

Асинхронно извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе, а при необходимости позволяет выбрать, следует ли перезаписывать файлы в целевом каталоге.

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

source
Stream

Поток, из которого извлекается ZIP-архив.

destinationDirectoryName
String

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

overwriteFiles
Boolean

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

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

destinationDirectoryName или source есть null.

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

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

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

–или–

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

–или–

overwriteFilesfalse и архивная запись для извлечения имеет то же имя, что и запись, которая уже извлечена или в ней существует destinationDirectoryName.

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

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

Архив, содержащийся в потоке source , не является допустимым ZIP-архивом.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Этот метод создает указанный каталог и все вложенные каталоги. Целевой каталог не может существовать. Исключения, связанные с проверкой путей в destinationDirectoryName zip-архиве или файлами, содержащимися в source параметрах, создаются перед извлечением. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет тот же относительный путь к каталогу, указанному destinationDirectoryName в качестве исходной записи, имеет корень архива.

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

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(String, String, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(string sourceArchiveFileName, string destinationDirectoryName, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : string * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (sourceArchiveFileName As String, destinationDirectoryName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

sourceArchiveFileName
String

Путь к архиву в файловой системе, которую необходимо извлечь.

destinationDirectoryName
String

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

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

sourceArchiveFileName или destinationDirectoryName есть null.

sourceArchiveFileName или destinationDirectoryName задает путь, имя файла или оба значения, превышающие определенную системой максимальную длину. Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.

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

Произошла ошибка ввода-вывода.

–или–

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

–или–

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

–или–

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

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

sourceArchiveFileName или destinationDirectoryName находится в недопустимом формате.

sourceArchiveFileName не найден.

Архив, указанный sourceArchiveFileName не является допустимым ZipArchive.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Указанный каталог не должен существовать. Этот метод создает все вложенные каталоги и указанный каталог.

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

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

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(Stream, String, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

Асинхронно извлекает все файлы из ZIP-архива, хранящегося в указанном потоке, и помещает их в указанный целевой каталог в файловой системе.

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

source
Stream

Поток, из которого извлекается ZIP-архив.

destinationDirectoryName
String

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

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

destinationDirectoryName или source есть null.

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

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

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

–или–

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

–или–

Запись архива для извлечения имеет то же имя, что и запись, которая уже извлечена или существует в destinationDirectoryName.

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

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

Архив, содержащийся в потоке source , не является допустимым ZIP-архивом.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Этот метод создает указанный каталог и все вложенные каталоги. Целевой каталог не может существовать. Исключения, связанные с проверкой путей в destinationDirectoryName zip-архиве или файлами, содержащимися в source параметрах, создаются перед извлечением. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет тот же относительный путь к каталогу, указанному destinationDirectoryName в качестве исходной записи, имеет корень архива.

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

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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

ExtractToDirectoryAsync(Stream, String, Encoding, CancellationToken)

Исходный код:
ZipFile.Extract.Async.cs
Исходный код:
ZipFile.Extract.Async.cs

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

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Stream * string * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function ExtractToDirectoryAsync (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

Параметры

source
Stream

Поток, из которого извлекается ZIP-архив.

destinationDirectoryName
String

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

entryNameEncoding
Encoding

Кодировка, используемая при чтении или записи имен и комментариев в этом архиве. Укажите значение этого параметра, только если кодировка требуется для взаимодействия с средствами и библиотеками ZIP-архива, которые не поддерживают кодировку UTF-8 для имен записей или комментариев.

cancellationToken
CancellationToken

Маркер отмены для отслеживания запросов на отмену.

Возвращаемое значение

Исключения

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

–или–

entryNameEncoding для кодировки Юникода, отличной от UTF-8.

destinationDirectoryName или source есть null.

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

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

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

–или–

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

–или–

Запись архива для извлечения имеет то же имя, что и запись, которая уже извлечена или существует в destinationDirectoryName.

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

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

Архив, содержащийся в потоке source , не является допустимым ZIP-архивом.

–или–

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

–или–

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

Асинхронная операция отменена.

Комментарии

Этот метод создает указанный каталог и все вложенные каталоги. Целевой каталог не может существовать. Исключения, связанные с проверкой путей в destinationDirectoryName zip-архиве или файлами, содержащимися в source параметрах, создаются перед извлечением. В противном случае, если во время извлечения возникает ошибка, архив остается частично извлеченным. Каждый извлеченный файл имеет тот же относительный путь к каталогу, указанному destinationDirectoryName в качестве исходной записи, имеет корень архива.

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

Предупреждение

Этот метод не ограничивает общий несжатый размер или количество записей, извлеченных из архива. При обработке архивов из ненадежных источников выполните итерацию записей вручную с помощью ZipArchiveи убедитесь, что общий несжатый размер и количество записей находятся в допустимых ограничениях для вашего сценария.

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