Comparteix a través de


ZipFile.CreateFromDirectory Método

Definición

Crea un archivo zip que contiene los archivos y directorios del directorio especificado.

Sobrecargas

CreateFromDirectory(String, Stream)

Crea un archivo ZIP en la secuencia especificada que contiene los archivos y directorios del directorio especificado.

CreateFromDirectory(String, String)

Crea un archivo zip que contiene los archivos y directorios del directorio especificado.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Crea un archivo ZIP en la secuencia especificada que contiene los archivos y directorios del directorio especificado, usa el nivel de compresión especificado y, opcionalmente, incluye el directorio base.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Crea un archivo zip que contiene los archivos y directorios del directorio especificado, utiliza el nivel de compresión especificado y, opcionalmente, incluye el directorio base.

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

Crea un archivo ZIP en la secuencia especificada que contiene los archivos y directorios del directorio especificado, usa el nivel de compresión y la codificación de caracteres especificados para los nombres de entrada y, opcionalmente, incluye el directorio base.

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

Crea un archivo zip que contiene los archivos y directorios del directorio especificado, utiliza el nivel de compresión y la codificación de caracteres especificados para los nombres de entrada y, opcionalmente, incluye el directorio base.

CreateFromDirectory(String, Stream)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crea un archivo ZIP en la secuencia especificada que contiene los archivos y directorios del directorio 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

La ruta de acceso al directorio que se va a almacenar, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

destination
Stream

Secuencia donde se va a almacenar el archivo ZIP.

Excepciones

El valor de sourceDirectoryName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

o bien

La destination secuencia no admite la escritura.

sourceDirectoryName o destination es null.

En sourceDirectoryName la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El valor de sourceDirectoryName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).

Un archivo en el directorio especificado no se pudo abrir.

o bien

Se ha producido un error de E/S al abrir un archivo que se va a archivar.

sourceDirectoryName contiene un formato no válido.

Comentarios

La estructura de directorios del sistema de archivos se conserva en el archivo. Si el directorio está vacío, se crea un archivo vacío. Esta sobrecarga de método no incluye el directorio base en el archivo y no permite especificar un nivel de compresión. Si desea incluir el directorio base o especificar un nivel de compresión, llame a la sobrecarga del CreateFromDirectory(String, Stream, CompressionLevel, Boolean) método. Si no se puede agregar un archivo en el directorio al archivo, el archivo se deja incompleto y no es válido y el método produce una IOException excepción.

Se aplica a

CreateFromDirectory(String, String)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crea un archivo zip que contiene los archivos y directorios del directorio 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

La ruta de acceso al directorio que se va a almacenar, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

destinationArchiveFileName
String

La ruta de acceso del archivo que se creará, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

Excepciones

sourceDirectoryName o destinationArchiveFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

sourceDirectoryName o destinationArchiveFileName es null.

En sourceDirectoryName o destinationArchiveFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El valor de sourceDirectoryName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).

destinationArchiveFileName ya existe.

o bien

Un archivo en el directorio especificado no se pudo abrir.

o bien

Se ha producido un error de E/S al abrir un archivo que se va a archivar.

destinationArchiveFileName especifica un directorio.

o bien

El llamador no tiene el permiso necesario para tener acceso al directorio especificado en sourceDirectoryName o al archivo especificado en destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato no válido.

o bien

El archivo zip no admite escritura.

Ejemplos

En este ejemplo se muestra cómo crear y extraer un archivo ZIP mediante la ZipFile clase . Comprime el contenido de una carpeta en un archivo ZIP y, a continuación, extrae ese contenido en una nueva carpeta. Para usar la clase ZipFile, debe hacer referencia al ensamblado System.IO.Compression.FileSystem del proyecto.

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

Comentarios

La estructura de directorios del sistema de archivos se conserva en el archivo. Si el directorio está vacío, se crea un archivo vacío. Esta sobrecarga de método no incluye el directorio base en el archivo y no permite especificar un nivel de compresión. Si desea incluir el directorio base o especificar un nivel de compresión, llame a la sobrecarga del CreateFromDirectory(String, String, CompressionLevel, Boolean) método.

Si el archivo ya existe, se produce una IOException excepción. Si ya existe una entrada con el nombre especificado en el archivo, se crea una segunda entrada con un nombre idéntico.

Si no se puede agregar un archivo en el directorio al archivo, el archivo se deja incompleto y no es válido y el método produce una IOException excepción.

Se aplica a

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crea un archivo ZIP en la secuencia especificada que contiene los archivos y directorios del directorio especificado, usa el nivel de compresión especificado y, opcionalmente, incluye el directorio 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

La ruta de acceso al directorio que se va a almacenar, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

destination
Stream

Secuencia donde se va a almacenar el archivo ZIP.

compressionLevel
CompressionLevel

Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada.

includeBaseDirectory
Boolean

true para incluir el nombre de directorio de sourceDirectoryName en la raíz del archivo; false para incluir solo el contenido del directorio.

Excepciones

El valor de sourceDirectoryName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

o bien

La destination secuencia no admite la escritura.

sourceDirectoryName o destination es null.

En sourceDirectoryName la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El valor de sourceDirectoryName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).

Un archivo en el directorio especificado no se pudo abrir.

o bien

Se ha producido un error de E/S al abrir un archivo que se va a archivar.

sourceDirectoryName contiene un formato no válido.

compressionLevel no es un valor CompressionLevel válido.

Comentarios

La estructura de directorios del sistema de archivos se conserva en el archivo. Si el directorio está vacío, se crea un archivo vacío. Use esta sobrecarga de método para especificar el nivel de compresión y si se debe incluir el directorio base en el archivo. Si no se puede agregar un archivo en el directorio al archivo, el archivo se deja incompleto y no es válido y el método produce una IOException excepción.

Se aplica a

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crea un archivo zip que contiene los archivos y directorios del directorio especificado, utiliza el nivel de compresión especificado y, opcionalmente, incluye el directorio 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

La ruta de acceso al directorio que se va a almacenar, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

destinationArchiveFileName
String

La ruta de acceso del archivo que se creará, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

compressionLevel
CompressionLevel

Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada.

includeBaseDirectory
Boolean

true para incluir el nombre de directorio de sourceDirectoryName en la raíz del archivo; false para incluir solo el contenido del directorio.

Excepciones

sourceDirectoryName o destinationArchiveFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

sourceDirectoryName o destinationArchiveFileName es null.

En sourceDirectoryName o destinationArchiveFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El valor de sourceDirectoryName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).

destinationArchiveFileName ya existe.

o bien

Un archivo en el directorio especificado no se pudo abrir.

o bien

Se ha producido un error de E/S al abrir un archivo que se va a archivar.

destinationArchiveFileName especifica un directorio.

o bien

El llamador no tiene el permiso necesario para tener acceso al directorio especificado en sourceDirectoryName o al archivo especificado en destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato no válido.

o bien

El archivo zip no admite escritura.

Ejemplos

En este ejemplo se muestra cómo crear y extraer un archivo ZIP mediante la ZipFile clase . Comprime el contenido de una carpeta en un archivo ZIP y, a continuación, extrae ese contenido en una nueva carpeta. Al comprimir el archivo, se incluye el directorio base y el nivel de compresión se establece para resaltar la velocidad de la operación sobre la eficacia. Para usar la clase ZipFile, debe hacer referencia al ensamblado System.IO.Compression.FileSystem del proyecto.

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

Comentarios

La estructura de directorios del sistema de archivos se conserva en el archivo. Si el directorio está vacío, se crea un archivo vacío. Use esta sobrecarga de método para especificar el nivel de compresión y si se debe incluir el directorio base en el archivo.

Si el archivo ya existe, se produce una IOException excepción. Si ya existe una entrada con el nombre especificado en el archivo, se crea una segunda entrada con un nombre idéntico.

Si no se puede agregar un archivo en el directorio al archivo, el archivo se deja incompleto y no es válido y el método produce una IOException excepción.

Se aplica a

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

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crea un archivo ZIP en la secuencia especificada que contiene los archivos y directorios del directorio especificado, usa el nivel de compresión y la codificación de caracteres especificados para los nombres de entrada y, opcionalmente, incluye el directorio 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

La ruta de acceso al directorio que se va a almacenar, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

destination
Stream

Secuencia donde se va a almacenar el archivo ZIP.

compressionLevel
CompressionLevel

Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada.

includeBaseDirectory
Boolean

true para incluir el nombre de directorio de sourceDirectoryName en la raíz del archivo; false para incluir solo el contenido del directorio.

entryNameEncoding
Encoding

Codificación que se va a usar al leer o escribir nombres de entrada en este archivo. Especifique un valor para este parámetro únicamente cuando se necesite una codificación para la interoperabilidad con herramientas y bibliotecas de archivos zip que no admiten la codificación UTF-8 para los nombres de entrada.

Excepciones

El valor de sourceDirectoryName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

o bien

La destination secuencia no admite la escritura.

sourceDirectoryName o destination es null.

En sourceDirectoryName la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El valor de sourceDirectoryName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).

Un archivo en el directorio especificado no se pudo abrir.

o bien

Se ha producido un error de E/S al abrir un archivo que se va a archivar.

sourceDirectoryName contiene un formato no válido.

compressionLevel no es un valor CompressionLevel válido.

Comentarios

La estructura de directorios del sistema de archivos se conserva en el archivo. Si el directorio está vacío, se crea un archivo vacío. Use esta sobrecarga de método para especificar el nivel de compresión y la codificación de caracteres y si se debe incluir el directorio base en el archivo. Si no se puede agregar un archivo en el directorio al archivo, el archivo se deja incompleto y no es válido y el método produce una IOException excepción.

Se aplica a

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

Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs
Source:
ZipFile.Create.cs

Crea un archivo zip que contiene los archivos y directorios del directorio especificado, utiliza el nivel de compresión y la codificación de caracteres especificados para los nombres de entrada y, opcionalmente, incluye el directorio 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

La ruta de acceso al directorio que se va a almacenar, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

destinationArchiveFileName
String

La ruta de acceso del archivo que se creará, especificada como una ruta de acceso relativa o absoluta. Una ruta de acceso relativa se interpreta en relación con el directorio de trabajo actual.

compressionLevel
CompressionLevel

Uno de los valores de enumeración que indica si se va a hacer hincapié en la eficacia de velocidad o de compresión al crear la entrada.

includeBaseDirectory
Boolean

true para incluir el nombre de directorio de sourceDirectoryName en la raíz del archivo; false para incluir solo el contenido del directorio.

entryNameEncoding
Encoding

Codificación que se va a usar al leer o escribir nombres de entrada en este archivo. Especifique un valor para este parámetro únicamente cuando se necesite una codificación para la interoperabilidad con herramientas y bibliotecas de archivos zip que no admiten la codificación UTF-8 para los nombres de entrada.

Excepciones

sourceDirectoryName o destinationArchiveFileName es Empty, contiene solo espacios en blanco o contiene al menos un carácter no válido.

o bien

entryNameEncoding se establece en una codificación Unicode distinta de UTF-8.

sourceDirectoryName o destinationArchiveFileName es null.

En sourceDirectoryName o destinationArchiveFileName, la ruta de acceso especificada, el nombre de archivo o ambos superan la longitud máxima definida por el sistema.

El valor de sourceDirectoryName no es válido o no existe (por ejemplo, se encuentra en una unidad no asignada).

destinationArchiveFileName ya existe.

o bien

Un archivo en el directorio especificado no se pudo abrir.

o bien

Se ha producido un error de E/S al abrir un archivo que se va a archivar.

destinationArchiveFileName especifica un directorio.

o bien

El llamador no tiene el permiso necesario para tener acceso al directorio especificado en sourceDirectoryName o al archivo especificado en destinationArchiveFileName.

sourceDirectoryName o destinationArchiveFileName contiene un formato no válido.

o bien

El archivo zip no admite escritura.

Comentarios

La estructura de directorios del sistema de archivos se conserva en el archivo. Si el directorio está vacío, se crea un archivo vacío. Use esta sobrecarga de método para especificar el nivel de compresión y la codificación de caracteres y si se debe incluir el directorio base en el archivo.

Si el archivo ya existe, se produce una IOException excepción. Si ya existe una entrada con el nombre especificado en el archivo, se crea una segunda entrada con un nombre idéntico.

Si no se puede agregar un archivo en el directorio al archivo, el archivo se deja incompleto y no es válido y el método produce una IOException excepción.

Si entryNameEncoding se establece en un valor distinto nullde , los nombres de entrada se codifican mediante la codificación especificada. Si la codificación especificada es UTF-8, la marca de codificación de idioma (en la marca de bits de uso general del encabezado de archivo local) se establece para cada entrada,

Si entryNameEncoding se establece nullen , los nombres de entrada se codifican según las reglas siguientes:

  • En el caso de los nombres de entrada que contienen caracteres fuera del intervalo ASCII, se establece la marca de codificación de idioma y se usa UTF-8 para codificar el nombre de entrada.

  • En el caso de los nombres de entrada que contienen solo caracteres ASCII, se establece la marca de codificación de idioma y se usa la página de códigos predeterminada del sistema actual para codificar los nombres de entrada.

Se aplica a