ZipFile.CreateFromDirectory Metod

Definition

Skapar ett zip-arkiv som innehåller filerna och katalogerna från den angivna katalogen.

Överlagringar

Name Description
CreateFromDirectory(String, Stream)

Skapar ett zip-arkiv i den angivna strömmen som innehåller filerna och katalogerna från den angivna katalogen.

CreateFromDirectory(String, String)

Skapar ett zip-arkiv som innehåller filerna och katalogerna från den angivna katalogen.

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Skapar ett zip-arkiv i den angivna dataströmmen som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och kan även innehålla baskatalogen.

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Skapar ett zip-arkiv som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och kan även innehålla baskatalogen.

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

Skapar ett zip-arkiv i den angivna dataströmmen som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och teckenkodningen för postnamn och kommentarer och inkluderar eventuellt baskatalogen.

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

Skapar ett zip-arkiv som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och teckenkodningen för postnamn och kommentarer och kan även innehålla baskatalogen.

CreateFromDirectory(String, Stream)

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Skapar ett zip-arkiv i den angivna strömmen som innehåller filerna och katalogerna från den angivna katalogen.

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)

Parametrar

sourceDirectoryName
String

Sökvägen till katalogen som ska arkiveras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

destination
Stream

Strömmen där zip-arkivet ska lagras.

Undantag

sourceDirectoryName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

-eller-

Strömmen destination stöder inte skrivning.

sourceDirectoryName eller destination är null.

I sourceDirectoryNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

sourceDirectoryName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

Det gick inte att öppna en fil i den angivna katalogen.

-eller-

Ett I/O-fel uppstod när en fil skulle arkiveras öppnades.

sourceDirectoryName innehåller ett ogiltigt format.

Kommentarer

Katalogstrukturen från filsystemet bevaras i arkivet. Om katalogen är tom skapas ett tomt arkiv. Den här metoden innehåller inte baskatalogen i arkivet och tillåter inte att du anger en komprimeringsnivå. Om du vill inkludera baskatalogen eller ange en komprimeringsnivå anropar CreateFromDirectory(String, Stream, CompressionLevel, Boolean) du metodens överlagring. Om en fil i katalogen inte kan läggas till i arkivet lämnas arkivet ofullständigt och ogiltigt och metoden utlöser ett IOException undantag.

Gäller för

CreateFromDirectory(String, String)

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Skapar ett zip-arkiv som innehåller filerna och katalogerna från den angivna katalogen.

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)

Parametrar

sourceDirectoryName
String

Sökvägen till katalogen som ska arkiveras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

destinationArchiveFileName
String

Sökvägen till arkivet som ska skapas, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

Undantag

sourceDirectoryName eller destinationArchiveFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

sourceDirectoryName eller destinationArchiveFileName är null.

I sourceDirectoryName eller destinationArchiveFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

sourceDirectoryName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

destinationArchiveFileName redan finns.

-eller-

Det gick inte att öppna en fil i den angivna katalogen.

-eller-

Ett I/O-fel uppstod när en fil skulle arkiveras öppnades.

destinationArchiveFileName anger en katalog.

-eller-

Anroparen har inte den behörighet som krävs för att komma åt katalogen som anges i sourceDirectoryName eller filen som anges i destinationArchiveFileName.

sourceDirectoryName eller destinationArchiveFileName innehåller ett ogiltigt format.

-eller-

Zip-arkivet stöder inte skrivning.

Exempel

Det här exemplet visar hur du skapar och extraherar ett zip-arkiv med hjälp ZipFile av klassen . Den komprimerar innehållet i en mapp till ett zip-arkiv och extraherar sedan innehållet till en ny mapp. Om du vill använda ZipFile klassen måste du referera till System.IO.Compression.FileSystem sammansättningen i projektet.

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

Kommentarer

Katalogstrukturen från filsystemet bevaras i arkivet. Om katalogen är tom skapas ett tomt arkiv. Den här metoden innehåller inte baskatalogen i arkivet och tillåter inte att du anger en komprimeringsnivå. Om du vill inkludera baskatalogen eller ange en komprimeringsnivå anropar CreateFromDirectory(String, String, CompressionLevel, Boolean) du metodens överlagring.

Om arkivet redan finns genereras ett IOException undantag. Om det redan finns en post med det angivna namnet i arkivet skapas en andra post med ett identiskt namn.

Om en fil i katalogen inte kan läggas till i arkivet lämnas arkivet ofullständigt och ogiltigt och metoden utlöser ett IOException undantag.

Gäller för

CreateFromDirectory(String, Stream, CompressionLevel, Boolean)

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Skapar ett zip-arkiv i den angivna dataströmmen som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och kan även innehålla baskatalogen.

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)

Parametrar

sourceDirectoryName
String

Sökvägen till katalogen som ska arkiveras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

destination
Stream

Strömmen där zip-arkivet ska lagras.

compressionLevel
CompressionLevel

Ett av uppräkningsvärdena som anger om hastighets- eller komprimeringseffektivitet ska betonas när posten skapas.

includeBaseDirectory
Boolean

true för att inkludera katalognamnet från sourceDirectoryName roten i arkivet, false för att endast inkludera innehållet i katalogen.

Undantag

sourceDirectoryName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

-eller-

Strömmen destination stöder inte skrivning.

sourceDirectoryName eller destination är null.

I sourceDirectoryNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

sourceDirectoryName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

Det gick inte att öppna en fil i den angivna katalogen.

-eller-

Ett I/O-fel uppstod när en fil skulle arkiveras öppnades.

sourceDirectoryName innehåller ett ogiltigt format.

compressionLevel är inte ett giltigt CompressionLevel värde.

Kommentarer

Katalogstrukturen från filsystemet bevaras i arkivet. Om katalogen är tom skapas ett tomt arkiv. Använd den här metodens överlagring för att ange komprimeringsnivån och om baskatalogen ska inkluderas i arkivet. Om en fil i katalogen inte kan läggas till i arkivet lämnas arkivet ofullständigt och ogiltigt och metoden utlöser ett IOException undantag.

Gäller för

CreateFromDirectory(String, String, CompressionLevel, Boolean)

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Skapar ett zip-arkiv som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och kan även innehålla baskatalogen.

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)

Parametrar

sourceDirectoryName
String

Sökvägen till katalogen som ska arkiveras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

destinationArchiveFileName
String

Sökvägen till arkivet som ska skapas, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

compressionLevel
CompressionLevel

Ett av uppräkningsvärdena som anger om hastighets- eller komprimeringseffektivitet ska betonas när posten skapas.

includeBaseDirectory
Boolean

true för att inkludera katalognamnet från sourceDirectoryName roten i arkivet, false för att endast inkludera innehållet i katalogen.

Undantag

sourceDirectoryName eller destinationArchiveFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

sourceDirectoryName eller destinationArchiveFileName är null.

I sourceDirectoryName eller destinationArchiveFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

sourceDirectoryName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

destinationArchiveFileName redan finns.

-eller-

Det gick inte att öppna en fil i den angivna katalogen.

-eller-

Ett I/O-fel uppstod när en fil skulle arkiveras öppnades.

destinationArchiveFileName anger en katalog.

-eller-

Anroparen har inte den behörighet som krävs för att komma åt katalogen som anges i sourceDirectoryName eller filen som anges i destinationArchiveFileName.

sourceDirectoryName eller destinationArchiveFileName innehåller ett ogiltigt format.

-eller-

Zip-arkivet stöder inte skrivning.

Exempel

Det här exemplet visar hur du skapar och extraherar ett zip-arkiv med hjälp ZipFile av klassen . Den komprimerar innehållet i en mapp till ett zip-arkiv och extraherar sedan innehållet till en ny mapp. När du komprimerar arkivet inkluderas baskatalogen och komprimeringsnivån anges för att framhäva åtgärdens hastighet framför effektiviteten. Om du vill använda ZipFile klassen måste du referera till System.IO.Compression.FileSystem sammansättningen i projektet.

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

Kommentarer

Katalogstrukturen från filsystemet bevaras i arkivet. Om katalogen är tom skapas ett tomt arkiv. Använd den här metodens överlagring för att ange komprimeringsnivån och om baskatalogen ska inkluderas i arkivet.

Om arkivet redan finns genereras ett IOException undantag. Om det redan finns en post med det angivna namnet i arkivet skapas en andra post med ett identiskt namn.

Om en fil i katalogen inte kan läggas till i arkivet lämnas arkivet ofullständigt och ogiltigt och metoden utlöser ett IOException undantag.

Gäller för

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

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Skapar ett zip-arkiv i den angivna dataströmmen som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och teckenkodningen för postnamn och kommentarer och inkluderar eventuellt baskatalogen.

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)

Parametrar

sourceDirectoryName
String

Sökvägen till katalogen som ska arkiveras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

destination
Stream

Strömmen där zip-arkivet ska lagras.

compressionLevel
CompressionLevel

Ett av uppräkningsvärdena som anger om hastighets- eller komprimeringseffektivitet ska betonas när posten skapas.

includeBaseDirectory
Boolean

true för att inkludera katalognamnet från sourceDirectoryName roten i arkivet, false för att endast inkludera innehållet i katalogen.

entryNameEncoding
Encoding

Kodningen som ska användas vid läsning eller skrivning av postnamn och kommentarer i det här arkivet. Ange endast ett värde för den här parametern när en kodning krävs för samverkan med zip-arkivverktyg och bibliotek som inte stöder UTF-8-kodning för postnamn eller kommentarer.

Undantag

sourceDirectoryName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

-eller-

Strömmen destination stöder inte skrivning.

sourceDirectoryName eller destination är null.

I sourceDirectoryNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

sourceDirectoryName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

Det gick inte att öppna en fil i den angivna katalogen.

-eller-

Ett I/O-fel uppstod när en fil skulle arkiveras öppnades.

sourceDirectoryName innehåller ett ogiltigt format.

compressionLevel är inte ett giltigt CompressionLevel värde.

Kommentarer

Katalogstrukturen från filsystemet bevaras i arkivet. Om katalogen är tom skapas ett tomt arkiv. Använd den här metodens överlagring för att ange komprimeringsnivå och teckenkodning och om baskatalogen ska inkluderas i arkivet. Om en fil i katalogen inte kan läggas till i arkivet lämnas arkivet ofullständigt och ogiltigt och metoden utlöser ett IOException undantag.

Gäller för

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

Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs
Källa:
ZipFile.Create.cs

Skapar ett zip-arkiv som innehåller filer och kataloger från den angivna katalogen, använder den angivna komprimeringsnivån och teckenkodningen för postnamn och kommentarer och kan även innehålla baskatalogen.

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)

Parametrar

sourceDirectoryName
String

Sökvägen till katalogen som ska arkiveras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

destinationArchiveFileName
String

Sökvägen till arkivet som ska skapas, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.

compressionLevel
CompressionLevel

Ett av uppräkningsvärdena som anger om hastighets- eller komprimeringseffektivitet ska betonas när posten skapas.

includeBaseDirectory
Boolean

true för att inkludera katalognamnet från sourceDirectoryName roten i arkivet, false för att endast inkludera innehållet i katalogen.

entryNameEncoding
Encoding

Kodningen som ska användas vid läsning eller skrivning av postnamn och kommentarer i det här arkivet. Ange endast ett värde för den här parametern när en kodning krävs för samverkan med zip-arkivverktyg och bibliotek som inte stöder UTF-8-kodning för postnamn eller kommentarer.

Undantag

sourceDirectoryName eller destinationArchiveFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.

-eller-

entryNameEncoding är inställt på en Unicode-kodning som inte är UTF-8.

sourceDirectoryName eller destinationArchiveFileName är null.

I sourceDirectoryName eller destinationArchiveFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.

sourceDirectoryName är ogiltigt eller finns inte (till exempel finns det på en ommappad enhet).

destinationArchiveFileName redan finns.

-eller-

Det gick inte att öppna en fil i den angivna katalogen.

-eller-

Ett I/O-fel uppstod när en fil skulle arkiveras öppnades.

destinationArchiveFileName anger en katalog.

-eller-

Anroparen har inte den behörighet som krävs för att komma åt katalogen som anges i sourceDirectoryName eller filen som anges i destinationArchiveFileName.

sourceDirectoryName eller destinationArchiveFileName innehåller ett ogiltigt format.

-eller-

Zip-arkivet stöder inte skrivning.

Kommentarer

Katalogstrukturen från filsystemet bevaras i arkivet. Om katalogen är tom skapas ett tomt arkiv. Använd den här metodens överlagring för att ange komprimeringsnivå och teckenkodning och om baskatalogen ska inkluderas i arkivet.

Om arkivet redan finns genereras ett IOException undantag. Om det redan finns en post med det angivna namnet i arkivet skapas en andra post med ett identiskt namn.

Om en fil i katalogen inte kan läggas till i arkivet lämnas arkivet ofullständigt och ogiltigt och metoden utlöser ett IOException undantag.

Om entryNameEncoding är inställt på ett annat värde än nullkodas postnamnen och kommentarerna med hjälp av den angivna kodningen. Om den angivna kodningen är en UTF-8-kodning anges språkkodningsflaggan (i den allmänna bitflaggan för det lokala filhuvudet) för varje post.

Om entryNameEncoding är inställt på nullkodas postnamnen och kommentarerna enligt följande regler:

  • För postnamn och kommentarer som innehåller tecken utanför ASCII-intervallet anges språkkodningsflaggan och UTF-8 används för att koda postens namn och kommentar.

  • För postnamn och kommentarer som endast innehåller ASCII-tecken anges inte språkkodningsflaggan och den aktuella systemstandardkodsidan används för att koda postnamnen och kommentarerna.

Gäller för