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

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