ZipFile.CreateFromDirectory Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
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)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
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)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
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)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
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 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 morto 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)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
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 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)
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
- Origem:
- ZipFile.Create.cs
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 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 morto 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 null
de , 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 bits de uso geral do cabeçalho do arquivo local) será definido para cada entrada,
Se entryNameEncoding
for definido null
como , 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.