ZipFile.CreateFromDirectory Método

Definição

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

Sobrecargas

Name Description
CreateFromDirectory(String, String)

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

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Cria um arquivo zip que contém os ficheiros e diretórios do diretório especificado, utiliza o nível de compressão especificado e, opcionalmente, inclui o diretório base.

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

Cria um arquivo zip que contém os ficheiros e diretórios do diretório especificado, utiliza o nível de compressão e a codificação de caracteres especificados para nomes de entrada e comentários, e inclui opcionalmente o diretório base.

CreateFromDirectory(String, String)

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

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 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 apenas espaço em branco, ou contém pelo menos um carácter inválido.

sourceDirectoryName ou destinationArchiveFileName é null.

Em sourceDirectoryName ou destinationArchiveFileName, o caminho especificado, nome do ficheiro, ou ambos excedem o comprimento máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, está num disco não mapeado).

destinationArchiveFileName já existe.

-ou-

Um ficheiro no diretório especificado não podia ser aberto.

-ou-

Ocorreu um erro de E/S ao abrir um ficheiro a arquivar.

destinationArchiveFileName especifica um diretório.

-ou-

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

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

-ou-

O arquivo postal não suporta escrita.

Exemplos

Este exemplo mostra como criar e extrair um arquivo zip usando a ZipFile classe. Comprime o conteúdo de uma pasta num arquivo zip e depois extrai esse conteúdo para uma nova pasta. Para usar a ZipFile classe, tens de referenciar a System.IO.Compression.FileSystem montagem no teu 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

Observações

A estrutura de diretórios do sistema de ficheiros é preservada no arquivo. Se o diretório estiver vazio, cria-se um arquivo vazio. Esta sobrecarga de métodos não inclui o diretório base no arquivo e não permite especificar um nível de compressão. Se quiseres incluir o diretório base ou especificar um nível de compressão, chama o CreateFromDirectory(String, String, CompressionLevel, Boolean) método overload.

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

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

Aplica-se a

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Cria um arquivo zip que contém os ficheiros e diretórios do diretório especificado, utiliza o nível de compressã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 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 indica se deve enfatizar a velocidade ou a eficácia da compressão ao criar a entrada.

includeBaseDirectory
Boolean

true incluir o nome do diretório na sourceDirectoryName raiz do arquivo; false incluir apenas o conteúdo do diretório.

Exceções

sourceDirectoryName ou destinationArchiveFileName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

sourceDirectoryName ou destinationArchiveFileName é null.

Em sourceDirectoryName ou destinationArchiveFileName, o caminho especificado, nome do ficheiro, ou ambos excedem o comprimento máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, está num disco não mapeado).

destinationArchiveFileName já existe.

-ou-

Um ficheiro no diretório especificado não podia ser aberto.

-ou-

Ocorreu um erro de E/S ao abrir um ficheiro a arquivar.

destinationArchiveFileName especifica um diretório.

-ou-

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

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

-ou-

O arquivo postal não suporta escrita.

Exemplos

Este exemplo mostra como criar e extrair um arquivo zip usando a ZipFile classe. Comprime o conteúdo de uma pasta num arquivo zip e depois extrai esse conteúdo para uma nova pasta. Ao comprimir o arquivo, o diretório base é incluído e o nível de compressão é definido para enfatizar a velocidade da operação em detrimento da eficiência. Para usar a ZipFile classe, tens de referenciar a System.IO.Compression.FileSystem montagem no teu 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

Observações

A estrutura de diretórios do sistema de ficheiros é preservada no arquivo. Se o diretório estiver vazio, cria-se um arquivo vazio. Use esta sobrecarga de métodos para especificar o nível de compressão e se deve incluir o diretório base no arquivo.

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

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

Aplica-se a

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

Cria um arquivo zip que contém os ficheiros e diretórios do diretório especificado, utiliza o nível de compressão e a codificação de caracteres especificados para nomes de entrada e comentários, e inclui opcionalmente 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);
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 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 indica se deve enfatizar a velocidade ou a eficácia da compressão ao criar a entrada.

includeBaseDirectory
Boolean

true incluir o nome do diretório na sourceDirectoryName raiz do arquivo; false incluir apenas o conteúdo do diretório.

entryNameEncoding
Encoding

A codificação a usar ao ler ou escrever nomes de entradas e comentários neste arquivo. Especifique um valor para este parâmetro apenas quando for necessária uma codificação para interoperabilidade com ferramentas de arquivo zip e bibliotecas que não suportem codificação UTF-8 para nomes de entradas ou comentários.

Exceções

sourceDirectoryName ou destinationArchiveFileName é Empty, contém apenas espaço em branco, ou contém pelo menos um carácter inválido.

-ou-

entryNameEncoding está definido para uma codificação Unicode diferente da UTF-8.

sourceDirectoryName ou destinationArchiveFileName é null.

Em sourceDirectoryName ou destinationArchiveFileName, o caminho especificado, nome do ficheiro, ou ambos excedem o comprimento máximo definido pelo sistema.

sourceDirectoryName é inválido ou não existe (por exemplo, está num disco não mapeado).

destinationArchiveFileName já existe.

-ou-

Um ficheiro no diretório especificado não podia ser aberto.

-ou-

Ocorreu um erro de E/S ao abrir um ficheiro a arquivar.

destinationArchiveFileName especifica um diretório.

-ou-

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

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

-ou-

O arquivo postal não suporta escrita.

Observações

A estrutura de diretórios do sistema de ficheiros é preservada no arquivo. Se o diretório estiver vazio, cria-se um arquivo vazio. Use este método de sobrecarga para especificar o nível de compressão e a codificação de caracteres, e se deve incluir o diretório base no arquivo.

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

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

Se entryNameEncoding for definido para um valor diferente de null, os nomes das entradas e comentários são codificados usando a codificação especificada. Se a codificação especificada for uma codificação UTF-8, a bandeira de codificação da linguagem (na flag de bit de uso geral do cabeçalho local do ficheiro) é definida para cada entrada.

Se entryNameEncoding for definido como null, os nomes das entradas e comentários são codificados de acordo com as seguintes regras:

  • Para nomes de entradas e comentários que contenham caracteres fora do intervalo ASCII, a bandeira de codificação da linguagem é definida, e o UTF-8 é usado para codificar o nome da entrada e o comentário.

  • Para nomes de entradas e comentários que contenham apenas caracteres ASCII, a bandeira de codificação da linguagem não está definida, e a página de códigos padrão do sistema atual é usada para codificar os nomes das entradas e comentários.

Aplica-se a