ZipFile.CreateFromDirectory Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.