ZipFile.CreateFromDirectory Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога.
Перегрузки
| Имя | Описание |
|---|---|
| CreateFromDirectory(String, String) |
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога. |
| CreateFromDirectory(String, String, CompressionLevel, Boolean) |
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и при необходимости включает базовый каталог. |
| CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) |
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и кодировку символов для имен записей и комментариев, а также, при необходимости, включает базовый каталог. |
CreateFromDirectory(String, String)
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога.
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName);
public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName);
static member CreateFromDirectory : string * string -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String)
Параметры
- sourceDirectoryName
- String
Путь к архиву каталога, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- destinationArchiveFileName
- String
Путь создаваемого архива, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
Исключения
sourceDirectoryName или destinationArchiveFileName есть null.
В sourceDirectoryName или destinationArchiveFileName, указанный путь, имя файла или оба превышают системную максимальную длину.
sourceDirectoryName является недопустимым или не существует (например, он находится на несопоставленном диске).
destinationArchiveFileName уже существует.
–или–
Не удалось открыть файл в указанном каталоге.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
destinationArchiveFileName указывает каталог.
–или–
Вызывающий объект не имеет требуемого разрешения для доступа к каталогу, указанному в sourceDirectoryName или указанном в destinationArchiveFileNameфайле.
sourceDirectoryName или destinationArchiveFileName содержит недопустимый формат.
–или–
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
Комментарии
Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Эта перегрузка метода не включает базовый каталог в архив и не позволяет указывать уровень сжатия. Если вы хотите включить базовый каталог или указать уровень сжатия, вызовите перегрузку CreateFromDirectory(String, String, CompressionLevel, Boolean) метода.
Если архив уже существует, IOException создается исключение. Если запись с указанным именем уже существует в архиве, вторая запись создается с идентичным именем.
Если файл в каталоге нельзя добавить в архив, архив остается неполным и недопустимым, а метод вызывает IOException исключение.
Применяется к
CreateFromDirectory(String, String, CompressionLevel, Boolean)
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и при необходимости включает базовый каталог.
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)
Параметры
- sourceDirectoryName
- String
Путь к архиву каталога, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- destinationArchiveFileName
- String
Путь создаваемого архива, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- compressionLevel
- CompressionLevel
Одно из значений перечисления, указывающее, следует ли подчеркивать эффективность скорости или сжатия при создании записи.
- includeBaseDirectory
- Boolean
true Значение , чтобы включить имя каталога из sourceDirectoryName корня архива; false включить только содержимое каталога.
Исключения
sourceDirectoryName или destinationArchiveFileName есть null.
В sourceDirectoryName или destinationArchiveFileName, указанный путь, имя файла или оба превышают системную максимальную длину.
sourceDirectoryName является недопустимым или не существует (например, он находится на несопоставленном диске).
destinationArchiveFileName уже существует.
–или–
Не удалось открыть файл в указанном каталоге.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
destinationArchiveFileName указывает каталог.
–или–
Вызывающий объект не имеет требуемого разрешения для доступа к каталогу, указанному в sourceDirectoryName или указанном в destinationArchiveFileNameфайле.
sourceDirectoryName или destinationArchiveFileName содержит недопустимый формат.
–или–
Zip-архив не поддерживает запись.
Примеры
В этом примере показано, как создать и извлечь ZIP-архив с помощью ZipFile класса. Он сжимает содержимое папки в ZIP-архив, а затем извлекает это содержимое в новую папку. При сжатие архива базовый каталог включается и устанавливается уровень сжатия, чтобы подчеркнуть скорость операции над эффективностью. Чтобы использовать ZipFile класс, необходимо ссылаться на сборку System.IO.Compression.FileSystem в проекте.
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
}
}
open System.IO.Compression
let startPath = @"c:\example\start"
let zipPath = @"c:\example\result.zip"
let extractPath = @"c:\example\extract"
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true)
ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO
Imports System.IO.Compression
Module Module1
Sub Main()
Dim startPath As String = "c:\example\start"
Dim zipPath As String = "c:\example\result.zip"
Dim extractPath As String = "c:\example\extract"
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, True)
ZipFile.ExtractToDirectory(zipPath, extractPath)
End Sub
End Module
Комментарии
Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Используйте эту перегрузку метода, чтобы указать уровень сжатия и включить базовый каталог в архив.
Если архив уже существует, IOException создается исключение. Если запись с указанным именем уже существует в архиве, вторая запись создается с идентичным именем.
Если файл в каталоге нельзя добавить в архив, архив остается неполным и недопустимым, а метод вызывает IOException исключение.
Применяется к
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)
Создает ZIP-архив, содержащий файлы и каталоги из указанного каталога, использует указанный уровень сжатия и кодировку символов для имен записей и комментариев, а также, при необходимости, включает базовый каталог.
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)
Параметры
- sourceDirectoryName
- String
Путь к архиву каталога, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- destinationArchiveFileName
- String
Путь создаваемого архива, указанный как относительный или абсолютный путь. Относительный путь интерпретируется как относительный к текущему рабочему каталогу.
- compressionLevel
- CompressionLevel
Одно из значений перечисления, указывающее, следует ли подчеркивать эффективность скорости или сжатия при создании записи.
- includeBaseDirectory
- Boolean
true Значение , чтобы включить имя каталога из sourceDirectoryName корня архива; false включить только содержимое каталога.
- entryNameEncoding
- Encoding
Кодировка, используемая при чтении или записи имен и комментариев в этом архиве. Укажите значение этого параметра, только если кодировка требуется для взаимодействия с средствами и библиотеками ZIP-архива, которые не поддерживают кодировку UTF-8 для имен записей или комментариев.
Исключения
–или–
entryNameEncoding для кодировки Юникода, отличной от UTF-8.
sourceDirectoryName или destinationArchiveFileName есть null.
В sourceDirectoryName или destinationArchiveFileName, указанный путь, имя файла или оба превышают системную максимальную длину.
sourceDirectoryName является недопустимым или не существует (например, он находится на несопоставленном диске).
destinationArchiveFileName уже существует.
–или–
Не удалось открыть файл в указанном каталоге.
–или–
При открытии файла для архивирования произошла ошибка ввода-вывода.
destinationArchiveFileName указывает каталог.
–или–
Вызывающий объект не имеет требуемого разрешения для доступа к каталогу, указанному в sourceDirectoryName или указанном в destinationArchiveFileNameфайле.
sourceDirectoryName или destinationArchiveFileName содержит недопустимый формат.
–или–
Zip-архив не поддерживает запись.
Комментарии
Структура каталогов из файловой системы сохраняется в архиве. Если каталог пуст, создается пустой архив. Используйте эту перегрузку метода, чтобы указать уровень сжатия и кодировку символов, а также включить базовый каталог в архив.
Если архив уже существует, IOException создается исключение. Если запись с указанным именем уже существует в архиве, вторая запись создается с идентичным именем.
Если файл в каталоге нельзя добавить в архив, архив остается неполным и недопустимым, а метод вызывает IOException исключение.
Если entryNameEncoding задано значение, отличное nullот значения, имена и комментарии записей кодируются с помощью указанной кодировки. Если указанная кодировка является кодировкой UTF-8, для каждой записи устанавливается флаг кодировки языка (в флаге бита общего назначения локального заголовка файла).
Если entryNameEncoding задано значение null, имена и примечания записей кодируются в соответствии со следующими правилами:
Для имен записей и комментариев, содержащих символы за пределами диапазона ASCII, задается флаг кодировки языка, а для кодирования имени и комментария используется UTF-8.
Для имен записей и комментариев, содержащих только символы ASCII, флаг кодировки языка не задан, а текущая системная кодовая страница по умолчанию используется для кодирования имен записей и комментариев.