ZipFile.CreateFromDirectory Método

Definição

Cria um arquivo zip que contém os arquivos e diretórios da pasta especificada.

Sobrecargas

CreateFromDirectory(String, Stream)

Cria um arquivo zip no fluxo especificado que contém os arquivos e diretórios do diretório especificado.

CreateFromDirectory(String, String)

Cria um arquivo zip que contém os arquivos e diretórios da pasta especificada.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Cria um arquivo zip no fluxo especificado que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e, opcionalmente, inclui o diretório base.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Cria um arquivo zip que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e opcionalmente inclui o diretório base.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean, Encoding)

Cria um arquivo zip no fluxo especificado que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e a codificação de caracteres para nomes de entrada e, opcionalmente, inclui o diretório base.

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

Cria um arquivo zip que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e codificação de caracteres para nomes de entrada e, como opção, inclui o diretório base.

CreateFromDirectory(String, Stream)

Cria um arquivo zip no fluxo especificado que contém os arquivos e diretórios do diretório especificado.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination);
static member CreateFromDirectory : string * System.IO.Stream -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream)

Parâmetros

sourceDirectoryName
String

O caminho para o diretório a ser arquivado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

destination
Stream

O fluxo em que o arquivo zip deve ser armazenado.

Exceções

sourceDirectoryName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

- ou -

O destination fluxo não dá suporte à gravação.

sourceDirectoryName ou destination é null.

No sourceDirectoryName caminho especificado, o nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).

Não foi possível abrir um arquivo no diretório especificado.

- ou -

Ocorreu um erro de E/S ao abrir um arquivo a ser arquivado.

sourceDirectoryName contém um formato inválido.

Comentários

A estrutura de diretório do sistema de arquivos é preservada no arquivo morto. Se o diretório estiver vazio, um arquivo morto vazio será criado. Essa sobrecarga de método não inclui o diretório base no arquivo morto e não permite que você especifique um nível de compactação. Se você quiser incluir o diretório base ou especificar um nível de compactação, chame a sobrecarga do CreateFromDirectory(String, Stream, CompressionLevel, Boolean) método. Se um arquivo no diretório não puder ser adicionado ao arquivo morto, o arquivo será deixado incompleto e inválido e o método gerará uma exceção IOException .

Aplica-se a

CreateFromDirectory(String, String)

Cria um arquivo zip que contém os arquivos e diretórios da pasta especificada.

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)

Parâmetros

sourceDirectoryName
String

O caminho para o diretório a ser arquivado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

destinationArchiveFileName
String

O caminho do arquivo morto a ser criado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

Exceções

sourceDirectoryName ou destinationArchiveFileName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

sourceDirectoryName ou destinationArchiveFileName é null.

Em sourceDirectoryName ou destinationArchiveFileName, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).

destinationArchiveFileName já existe.

- ou -

Não foi possível abrir um arquivo no diretório especificado.

- ou -

Ocorreu um erro de E/S ao abrir um arquivo a ser arquivado.

destinationArchiveFileName especifica um diretório.

- ou -

O chamador não tem a permissão necessária para acessar o diretório especificado em sourceDirectoryName ou o arquivo especificado em destinationArchiveFileName.

sourceDirectoryName ou destinationArchiveFileName contém um formato inválido.

- ou -

O arquivo zip não dá suporte à gravação.

Exemplos

Este exemplo mostra como criar e extrair um arquivo zip usando a ZipFile classe . Ele compacta o conteúdo de uma pasta em um arquivo zip e extrai esse conteúdo para uma nova pasta. Para usar a classe ZipFile, você deve fazer referência ao assembly System.IO.Compression.FileSystem em seu projeto.

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

Comentários

A estrutura de diretório do sistema de arquivos é preservada no arquivo morto. Se o diretório estiver vazio, um arquivo morto vazio será criado. Essa sobrecarga de método não inclui o diretório base no arquivo morto e não permite que você especifique um nível de compactação. Se você quiser incluir o diretório base ou especificar um nível de compactação, chame a sobrecarga do CreateFromDirectory(String, String, CompressionLevel, Boolean) método.

Se o arquivo já existir, uma exceção IOException será gerada. Se uma entrada com o nome especificado já existir no arquivo morto, uma segunda entrada será criada com um nome idêntico.

Se um arquivo no diretório não puder ser adicionado ao arquivo morto, o arquivo será deixado incompleto e inválido e o método gerará uma exceção IOException .

Aplica-se a

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Cria um arquivo zip no fluxo especificado que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e, opcionalmente, inclui o diretório base.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)

Parâmetros

sourceDirectoryName
String

O caminho para o diretório a ser arquivado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

destination
Stream

O fluxo em que o arquivo zip deve ser armazenado.

compressionLevel
CompressionLevel

Um dos valores de enumeração que indica se é necessário enfatizar a eficiência de compactação ou velocidade ao criar a entrada.

includeBaseDirectory
Boolean

true para incluir o nome do diretório de sourceDirectoryName na raiz do arquivo morto, false para incluir somente o conteúdo do diretório.

Exceções

sourceDirectoryName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

- ou -

O destination fluxo não dá suporte à gravação.

sourceDirectoryName ou destination é null.

No sourceDirectoryName caminho especificado, o nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).

Não foi possível abrir um arquivo no diretório especificado.

- ou -

Ocorreu um erro de E/S ao abrir um arquivo a ser arquivado.

sourceDirectoryName contém um formato inválido.

compressionLevel não é um valor CompressionLevel válido.

Comentários

A estrutura de diretório do sistema de arquivos é preservada no arquivo morto. Se o diretório estiver vazio, um arquivo morto vazio será criado. Use essa sobrecarga de método para especificar o nível de compactação e se deve incluir o diretório base no arquivo morto. Se um arquivo no diretório não puder ser adicionado ao arquivo morto, o arquivo será deixado incompleto e inválido e o método gerará uma exceção IOException .

Aplica-se a

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Cria um arquivo zip que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e opcionalmente inclui o diretório base.

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)

Parâmetros

sourceDirectoryName
String

O caminho para o diretório a ser arquivado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

destinationArchiveFileName
String

O caminho do arquivo morto a ser criado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

compressionLevel
CompressionLevel

Um dos valores de enumeração que indica se é necessário enfatizar a eficiência de compactação ou velocidade ao criar a entrada.

includeBaseDirectory
Boolean

true para incluir o nome do diretório de sourceDirectoryName na raiz do arquivo morto, false para incluir somente o conteúdo do diretório.

Exceções

sourceDirectoryName ou destinationArchiveFileName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

sourceDirectoryName ou destinationArchiveFileName é null.

Em sourceDirectoryName ou destinationArchiveFileName, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).

destinationArchiveFileName já existe.

- ou -

Não foi possível abrir um arquivo no diretório especificado.

- ou -

Ocorreu um erro de E/S ao abrir um arquivo a ser arquivado.

destinationArchiveFileName especifica um diretório.

- ou -

O chamador não tem a permissão necessária para acessar o diretório especificado em sourceDirectoryName ou o arquivo especificado em destinationArchiveFileName.

sourceDirectoryName ou destinationArchiveFileName contém um formato inválido.

- ou -

O arquivo zip não dá suporte à gravação.

Exemplos

Este exemplo mostra como criar e extrair um arquivo zip usando a ZipFile classe . Ele compacta o conteúdo de uma pasta em um arquivo zip e extrai esse conteúdo para uma nova pasta. Ao compactar o arquivo morto, o diretório base é incluído e o nível de compactação é definido para enfatizar a velocidade da operação em relação à eficiência. Para usar a classe ZipFile, você deve fazer referência ao assembly System.IO.Compression.FileSystem em seu projeto.

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

Comentários

A estrutura de diretório do sistema de arquivos é preservada no arquivo morto. Se o diretório estiver vazio, um arquivo morto vazio será criado. Use essa sobrecarga de método para especificar o nível de compactação e se deve incluir o diretório base no arquivo morto.

Se o arquivo já existir, uma exceção IOException será gerada. Se uma entrada com o nome especificado já existir no arquivo morto, uma segunda entrada será criada com um nome idêntico.

Se um arquivo no diretório não puder ser adicionado ao arquivo morto, o arquivo será deixado incompleto e inválido e o método gerará uma exceção IOException .

Aplica-se a

CreateFromDirectory(String, Stream, CompressionLevel, Boolean, Encoding)

Cria um arquivo zip no fluxo especificado que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e a codificação de caracteres para nomes de entrada e, opcionalmente, inclui o diretório base.

public:
 static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)

Parâmetros

sourceDirectoryName
String

O caminho para o diretório a ser arquivado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

destination
Stream

O fluxo em que o arquivo zip deve ser armazenado.

compressionLevel
CompressionLevel

Um dos valores de enumeração que indica se é necessário enfatizar a eficiência de compactação ou velocidade ao criar a entrada.

includeBaseDirectory
Boolean

true para incluir o nome do diretório de sourceDirectoryName na raiz do arquivo morto, false para incluir somente o conteúdo do diretório.

entryNameEncoding
Encoding

A codificação a ser usada ao ler ou gravar nomes de entrada nesse arquivo. Especifique um valor para esse parâmetro somente quando uma codificação for necessária para a interoperabilidade com ferramentas de arquivo zip e bibliotecas que não dão suporte à codificação UTF-8 para nomes de entrada.

Exceções

sourceDirectoryName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

- ou -

O destination fluxo não dá suporte à gravação.

sourceDirectoryName ou destination é null.

No sourceDirectoryName caminho especificado, o nome do arquivo ou ambos excedem o comprimento máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).

Não foi possível abrir um arquivo no diretório especificado.

- ou -

Ocorreu um erro de E/S ao abrir um arquivo a ser arquivado.

sourceDirectoryName contém um formato inválido.

compressionLevel não é um valor CompressionLevel válido.

Comentários

A estrutura de diretório do sistema de arquivos é preservada no arquivo morto. Se o diretório estiver vazio, um arquivo morto vazio será criado. Use essa sobrecarga de método para especificar o nível de compactação e a codificação de caracteres e se deseja incluir o diretório base no arquivo morto. Se um arquivo no diretório não puder ser adicionado ao arquivo morto, o arquivo será deixado incompleto e inválido e o método gerará uma exceção IOException .

Aplica-se a

CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)

Cria um arquivo zip que contém os arquivos e diretórios do diretório especificado, usa o nível de compactação especificado e codificação de caracteres para nomes de entrada e, como opção, inclui o diretório base.

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);
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)

Parâmetros

sourceDirectoryName
String

O caminho para o diretório a ser arquivado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

destinationArchiveFileName
String

O caminho do arquivo morto a ser criado, especificado como um caminho relativo ou absoluto. Um caminho relativo é interpretado como relativo ao diretório de trabalho atual.

compressionLevel
CompressionLevel

Um dos valores de enumeração que indica se é necessário enfatizar a eficiência de compactação ou velocidade ao criar a entrada.

includeBaseDirectory
Boolean

true para incluir o nome do diretório de sourceDirectoryName na raiz do arquivo morto, false para incluir somente o conteúdo do diretório.

entryNameEncoding
Encoding

A codificação a ser usada ao ler ou gravar nomes de entrada nesse arquivo. Especifique um valor para esse parâmetro somente quando uma codificação for necessária para a interoperabilidade com ferramentas de arquivo zip e bibliotecas que não dão suporte à codificação UTF-8 para nomes de entrada.

Exceções

sourceDirectoryName ou destinationArchiveFileName é Empty, contém somente espaços em branco ou, pelo menos, um caractere inválido.

- ou -

entryNameEncoding é definido com uma codificação Unicode diferente de UTF-8.

sourceDirectoryName ou destinationArchiveFileName é null.

Em sourceDirectoryName ou destinationArchiveFileName, o caminho especificado, o nome de arquivo, ou ambos excedem o tamanho máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, ele está em uma unidade não mapeada).

destinationArchiveFileName já existe.

- ou -

Não foi possível abrir um arquivo no diretório especificado.

- ou -

Ocorreu um erro de E/S ao abrir um arquivo a ser arquivado.

destinationArchiveFileName especifica um diretório.

- ou -

O chamador não tem a permissão necessária para acessar o diretório especificado em sourceDirectoryName ou o arquivo especificado em destinationArchiveFileName.

sourceDirectoryName ou destinationArchiveFileName contém um formato inválido.

- ou -

O arquivo zip não dá suporte à gravação.

Comentários

A estrutura de diretório do sistema de arquivos é preservada no arquivo morto. Se o diretório estiver vazio, um arquivo morto vazio será criado. Use essa sobrecarga de método para especificar o nível de compactação e a codificação de caracteres e se deseja incluir o diretório base no arquivo morto.

Se o arquivo já existir, uma exceção IOException será gerada. Se uma entrada com o nome especificado já existir no arquivo morto, uma segunda entrada será criada com um nome idêntico.

Se um arquivo no diretório não puder ser adicionado ao arquivo morto, o arquivo será deixado incompleto e inválido e o método gerará uma exceção IOException .

Se entryNameEncoding for definido como um valor diferente nullde , os nomes de entrada serão codificados usando a codificação especificada. Se a codificação especificada for UTF-8, o sinalizador de codificação de idioma (no sinalizador de bit de uso geral do cabeçalho do arquivo local) será definido para cada entrada,

Se entryNameEncoding estiver definido como null, os nomes de entrada serão codificados de acordo com as seguintes regras:

  • Para nomes de entrada que contêm caracteres fora do intervalo ASCII, o sinalizador de codificação de idioma é definido e UTF-8 é usado para codificar o nome da entrada.

  • Para nomes de entrada que contêm apenas caracteres ASCII, o sinalizador de codificação de idioma é definido e a página de código padrão do sistema atual é usada para codificar os nomes de entrada.

Aplica-se a