ZipFile.CreateFromDirectoryAsync Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Перегрузки
| Имя | Описание |
|---|---|
| CreateFromDirectoryAsync(String, Stream, CancellationToken) |
Асинхронно создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога. |
| CreateFromDirectoryAsync(String, String, CancellationToken) |
Асинхронно создает ZIP-архив по пути |
| CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken) |
Асинхронно создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, используя указанный уровень сжатия и при необходимости включая базовый каталог. |
| CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken) |
Асинхронно создает ZIP-архив по пути |
| CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken) |
Асинхронно создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, используя указанный уровень сжатия и кодировку символов для имен записей, а также, при необходимости, включая базовый каталог. |
| CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken) |
Асинхронно создает ZIP-архив по пути |
CreateFromDirectoryAsync(String, Stream, CancellationToken)
- Исходный код:
- ZipFile.Create.Async.cs
- Исходный код:
- ZipFile.Create.Async.cs
Асинхронно создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога.
public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, Optional cancellationToken As CancellationToken = Nothing) As Task
Параметры
- sourceDirectoryName
- String
Путь к архиву каталога, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- destination
- Stream
Поток, в котором хранится ZIP-архив.
- cancellationToken
- CancellationToken
Маркер отмены для отслеживания запросов на отмену.
Возвращаемое значение
Исключения
sourceDirectoryName is Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
–или–
Поток destination не поддерживает запись.
sourceDirectoryName или destination есть null.
В sourceDirectoryNameуказанном пути, имени файла или обоих значениях превышает заданную системой максимальную длину.
sourceDirectoryName является недопустимым или не существует (например, он находится на несопоставленном диске).
Не удалось открыть файл в указанном каталоге.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
sourceDirectoryName содержит недопустимый формат.
Асинхронная операция отменена.
Комментарии
Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив.
Эта перегрузка метода не включает базовый каталог в архив и не позволяет указывать уровень сжатия.
Если вы хотите включить базовый каталог или указать уровень сжатия, вызовите перегрузку CreateFromDirectory(String, Stream, CompressionLevel, Boolean) метода.
Если файл в каталоге нельзя добавить в архив, архив остается неполным и недопустимым, а метод вызывает IOException исключение.
Применяется к
CreateFromDirectoryAsync(String, String, CancellationToken)
- Исходный код:
- ZipFile.Create.Async.cs
- Исходный код:
- ZipFile.Create.Async.cs
Асинхронно создает ZIP-архив по пути destinationArchiveFileName , который содержит файлы и каталоги из каталога, указанного в sourceDirectoryNameнем.
public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, Optional cancellationToken As CancellationToken = Nothing) As Task
Параметры
- sourceDirectoryName
- String
Путь к каталогу файловой системы, который необходимо архивировать.
- destinationArchiveFileName
- String
Имя создаваемого архива.
- cancellationToken
- CancellationToken
Маркер отмены для отслеживания запросов на отмену.
Возвращаемое значение
Исключения
sourceDirectoryName или destinationArchiveFileName строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, как определено InvalidPathChars.
sourceDirectoryName или destinationArchiveFileName есть null.
В sourceDirectoryName или destinationArchiveFileName, указанный путь, имя файла или оба превышают системную максимальную длину.
Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.
Путь, указанный в sourceDirectoryName или destinationArchiveFileName недопустимый (например, на несопоставленном диске).
–или–
Каталог, указанный sourceDirectoryName не существует.
destinationArchiveFileName уже существует.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
destinationArchiveFileName указан каталог.
–или–
Вызывающий объект не имеет требуемого разрешения.
sourceDirectoryName или destinationArchiveFileName находится в недопустимом формате.
Асинхронная операция отменена.
Комментарии
Структура каталогов сохраняется в архиве, а рекурсивный поиск выполняется для архивирования файлов. Архив не должен существовать. Если каталог пуст, создается пустой архив. Если файл в каталоге не может быть добавлен в архив, архив останется неполным и недопустимым, и метод вызовет исключение. Этот метод не включает базовый каталог в архив.
Если при добавлении файлов в архив возникает ошибка, этот метод останавливает добавление файлов и оставляет архив в недопустимом состоянии. Пути могут указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Если файл в архиве содержит данные в поле времени последней записи, которое не является допустимым zip-меткой времени, значение индикатора 1980 января 1 в полночь будет использоваться для последнего изменения файла. Если запись с указанным именем уже существует в архиве, создается вторая запись с идентичным именем. Так как параметр не CompressionLevel указан, используется значение по умолчанию, предоставленное реализацией базового алгоритма сжатия; ZipArchive он не будет применять собственный по умолчанию.
(В настоящее время базовый алгоритм сжатия предоставляется классом DeflateStream .)
Применяется к
CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken)
- Исходный код:
- ZipFile.Create.Async.cs
- Исходный код:
- ZipFile.Create.Async.cs
Асинхронно создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, используя указанный уровень сжатия и при необходимости включая базовый каталог.
public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task
Параметры
- sourceDirectoryName
- String
Путь к архиву каталога, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- destination
- Stream
Поток, в котором хранится ZIP-архив.
- compressionLevel
- CompressionLevel
Одно из значений перечисления, указывающее, следует ли подчеркивать эффективность скорости или сжатия при создании записи.
- includeBaseDirectory
- Boolean
true Значение , чтобы включить имя каталога из sourceDirectoryName корня архива; false включить только содержимое каталога.
- cancellationToken
- CancellationToken
Маркер для отслеживания запросов на отмену.
Возвращаемое значение
Исключения
sourceDirectoryName is Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
–или–
Поток destination не поддерживает запись.
sourceDirectoryName или destination есть null.
В sourceDirectoryNameуказанном пути, имени файла или обоих значениях превышает заданную системой максимальную длину.
sourceDirectoryName является недопустимым или не существует (например, он находится на несопоставленном диске).
Не удалось открыть файл в указанном каталоге.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
sourceDirectoryName содержит недопустимый формат.
compressionLevel недопустимое CompressionLevel значение.
Асинхронная операция отменена.
Комментарии
Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив.
Используйте эту перегрузку метода, чтобы указать уровень сжатия и включить базовый каталог в архив.
Если файл в каталоге нельзя добавить в архив, архив остается неполным и недопустимым, а метод вызывает IOException исключение.
Применяется к
CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken)
- Исходный код:
- ZipFile.Create.Async.cs
- Исходный код:
- ZipFile.Create.Async.cs
Асинхронно создает ZIP-архив по пути destinationArchiveFileName , который содержит файлы и каталоги в каталоге, указанном в sourceDirectoryNameнем.
public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.IO.Compression.CompressionLevel * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task
Параметры
- sourceDirectoryName
- String
Путь к каталогу файловой системы, который необходимо архивировать.
- destinationArchiveFileName
- String
Имя создаваемого архива.
- compressionLevel
- CompressionLevel
Одно из значений перечисления, указывающее уровень сжатия (скорость или память и сжатый размер компромисса).
- includeBaseDirectory
- Boolean
true Значение , указывающее, что именованный sourceDirectoryName каталог должен быть включен в корневой каталог архива.
false Значение , указывающее, что файлы и каталоги sourceDirectoryName должны быть включены непосредственно в архив.
- cancellationToken
- CancellationToken
Маркер отмены для отслеживания запросов на отмену.
Возвращаемое значение
Исключения
sourceDirectoryName или destinationArchiveFileName строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, как определено InvalidPathChars.
sourceDirectoryName или destinationArchiveFileName есть null.
В sourceDirectoryName или destinationArchiveFileName, указанный путь, имя файла или оба превышают системную максимальную длину.
Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.
Путь, указанный в sourceDirectoryName или destinationArchiveFileName недопустимый (например, на несопоставленном диске).
–или–
Каталог, указанный sourceDirectoryName не существует.
destinationArchiveFileName уже существует.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
destinationArchiveFileName указан каталог.
–или–
Вызывающий объект не имеет требуемого разрешения.
sourceDirectoryName или destinationArchiveFileName находится в недопустимом формате.
Асинхронная операция отменена.
Комментарии
Структура каталогов сохраняется в архиве, а рекурсивный поиск выполняется для архивирования файлов. Архив не должен существовать. Если каталог пуст, будет создан пустой архив.
Если файл в каталоге не может быть добавлен в архив, архив останется неполным и недопустимым, и метод вызовет исключение. Этот метод при необходимости включает базовый каталог в архив.
Если при добавлении файлов в архив возникает ошибка, этот метод перестанет добавлять файлы и покидать архив в недопустимом состоянии. Пути могут указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Если файл в архиве содержит данные в поле времени последней записи, которое не является допустимым zip-меткой времени, значение индикатора 1980 января 1 в полночь будет использоваться для последнего изменения файла. Если запись с указанным именем уже существует в архиве, вторая запись будет создана с идентичным именем. Так как не CompressionLevel указано, используется значение по умолчанию, предоставленное реализацией базового алгоритма сжатия.ZipArchive
(В настоящее время базовый алгоритм сжатия предоставляется классом DeflateStream .)
Применяется к
CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken)
- Исходный код:
- ZipFile.Create.Async.cs
- Исходный код:
- ZipFile.Create.Async.cs
Асинхронно создает ZIP-архив в указанном потоке, который содержит файлы и каталоги из указанного каталога, используя указанный уровень сжатия и кодировку символов для имен записей, а также, при необходимости, включая базовый каталог.
public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task
Параметры
- sourceDirectoryName
- String
Путь к архиву каталога, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- destination
- Stream
Поток, в котором хранится ZIP-архив.
- compressionLevel
- CompressionLevel
Одно из значений перечисления, указывающее, следует ли подчеркивать эффективность скорости или сжатия при создании записи.
- includeBaseDirectory
- Boolean
true Значение , чтобы включить имя каталога из sourceDirectoryName корня архива; false включить только содержимое каталога.
- entryNameEncoding
- Encoding
Кодировка, используемая при чтении или записи имен записей в этом архиве. Укажите значение этого параметра, только если кодировка требуется для взаимодействия с средствами и библиотеками ZIP-архива, которые не поддерживают кодировку UTF-8 для имен записей или комментариев.
- cancellationToken
- CancellationToken
Маркер отмены для отслеживания запросов на отмену.
Возвращаемое значение
Исключения
sourceDirectoryName is Empty, содержит только пробелы или содержит по крайней мере один недопустимый символ.
–или–
Поток destination не поддерживает запись.
sourceDirectoryName или destination есть null.
В sourceDirectoryNameуказанном пути, имени файла или обоих значениях превышает заданную системой максимальную длину.
sourceDirectoryName является недопустимым или не существует (например, он находится на несопоставленном диске).
Не удалось открыть файл в указанном каталоге.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
sourceDirectoryName содержит недопустимый формат.
compressionLevel недопустимое CompressionLevel значение.
Асинхронная операция отменена.
Комментарии
Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив.
Используйте эту перегрузку метода, чтобы указать уровень сжатия и кодировку символов, а также включить базовый каталог в архив.
Если файл в каталоге нельзя добавить в архив, архив остается неполным и недопустимым, а метод вызывает IOException исключение.
Применяется к
CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken)
- Исходный код:
- ZipFile.Create.Async.cs
- Исходный код:
- ZipFile.Create.Async.cs
Асинхронно создает ZIP-архив по пути destinationArchiveFileName , который содержит файлы и каталоги в каталоге, указанном в sourceDirectoryNameнем.
public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task
Параметры
- sourceDirectoryName
- String
Путь к каталогу файловой системы, который необходимо архивировать.
- destinationArchiveFileName
- String
Имя создаваемого архива.
- compressionLevel
- CompressionLevel
Одно из значений перечисления, указывающее уровень сжатия (скорость или память и сжатый размер компромисса).
- includeBaseDirectory
- Boolean
true Значение , указывающее, что именованный sourceDirectoryName каталог должен быть включен в корневой каталог архива.
false Значение , указывающее, что файлы и каталоги sourceDirectoryName должны быть включены непосредственно в архив.
- entryNameEncoding
- Encoding
Кодировка, используемая при чтении или записи имен и комментариев в этом ZIPArchive.
- cancellationToken
- CancellationToken
Маркер отмены для отслеживания запросов на отмену.
Возвращаемое значение
Исключения
sourceDirectoryName или destinationArchiveFileName строка нулевой длины, содержит только пробелы или содержит один или несколько недопустимых символов, как определено InvalidPathChars.
sourceDirectoryName или destinationArchiveFileName есть null.
В sourceDirectoryName или destinationArchiveFileName, указанный путь, имя файла или оба превышают системную максимальную длину.
Например, на платформах под управлением Windows пути должны быть менее 248 символов, а имена файлов должны быть меньше 260 символов.
Путь, указанный в sourceDirectoryName или destinationArchiveFileName недопустимый (например, на несопоставленном диске).
–или–
Каталог, указанный sourceDirectoryName не существует.
destinationArchiveFileName уже существует.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
destinationArchiveFileName указан каталог.
–или–
Вызывающий объект не имеет требуемого разрешения.
sourceDirectoryName или destinationArchiveFileName находится в недопустимом формате.
Асинхронная операция отменена.
Комментарии
Структура каталогов сохраняется в архиве, а рекурсивный поиск выполняется для архивирования файлов. Архив не должен существовать. Если каталог пуст, будет создан пустой архив.
Если файл в каталоге не может быть добавлен в архив, архив останется неполным и недопустимым, и метод вызовет исключение. Этот метод при необходимости включает базовый каталог в архив.
Если при добавлении файлов в архив возникает ошибка, этот метод перестанет добавлять файлы и покидать архив в недопустимом состоянии. Пути могут указывать относительные или абсолютные сведения о пути. Относительные сведения о пути интерпретируются как относительные к текущему рабочему каталогу. Если файл в архиве содержит данные в поле времени последней записи, которое не является допустимым zip-меткой времени, значение индикатора 1980 января 1 в полночь будет использоваться для последнего изменения файла. Если запись с указанным именем уже существует в архиве, вторая запись будет создана с идентичным именем. Так как не CompressionLevel указано, используется значение по умолчанию, предоставленное реализацией базового алгоритма сжатия.ZipArchive
(В настоящее время базовый алгоритм сжатия предоставляется классом DeflateStream .)
Указание значения, отличного null от entryNameEncoding не рекомендуется.
Однако это может потребоваться для взаимодействия с средствами и библиотеками ZIP-архива, которые неправильно поддерживают кодировку UTF-8 для имен записей или комментариев.
- Если
entryNameEncodingне указано (== null):- Для имен файлов или комментариев, содержащих символы за пределами диапазона ASCII:
Флаг кодировки языка (EFS) будет задан в битовом флаге общего назначения заголовка локального файла соответствующей записи, а UTF-8 (Encoding.UTF8) будет использоваться для кодирования имени записи и комментариев в байтах. - Для имен файлов или комментариев, которые не содержат символов за пределами диапазона ASCII:
Флаг кодировки языка (EFS) не будет задан в битовом флаге общего назначения заголовка локального файла соответствующей записи, а текущая системная кодовая страница по умолчанию (Encoding.Default) будет использоваться для кодирования имен записей и комментариев в байтах.
- Для имен файлов или комментариев, содержащих символы за пределами диапазона ASCII:
- Если
entryNameEncodingзадано (!= null):- Указанные
entryNameEncodingзначения всегда будут использоваться для кодирования имен записей и комментариев в байтах.
Флаг кодировки языка (EFS) в битовом флаге общего назначения заголовка локального файла для каждой записи будет задан, только если указаноentryNameEncodingкодировка UTF-8.
- Указанные
Кодировки Юникода, отличные от UTF-8, нельзя использовать для entryNameEncodingнее, в противном случае ArgumentException возникает исключение.