ZipFile.ExtractToDirectory Methode

Definitie

Extraheert alle bestanden in het opgegeven zip-archief naar een map in het bestandssysteem.

Overloads

Name Description
ExtractToDirectory(String, String)

Extraheert alle bestanden in het opgegeven zip-archief naar een map in het bestandssysteem.

ExtractToDirectory(String, String, Boolean)

Hiermee worden alle bestanden in het opgegeven archief geëxtraheerd naar een map in het bestandssysteem.

ExtractToDirectory(String, String, Encoding)

Extraheert alle bestanden in het opgegeven zip-archief naar een map in het bestandssysteem en gebruikt de opgegeven tekencodering voor vermeldingsnamen en opmerkingen.

ExtractToDirectory(String, String, Encoding, Boolean)

Hiermee worden alle bestanden in het opgegeven archief geëxtraheerd naar een map in het bestandssysteem.

ExtractToDirectory(String, String)

Extraheert alle bestanden in het opgegeven zip-archief naar een map in het bestandssysteem.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

Parameters

sourceArchiveFileName
String

Het pad naar het archief dat moet worden geëxtraheerd.

destinationDirectoryName
String

Het pad naar de map waarin de geëxtraheerde bestanden moeten worden opgeslagen, opgegeven als een relatief of absoluut pad. Een relatief pad wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap.

Uitzonderingen

destinationDirectoryName of sourceArchiveFileName is Empty, bevat slechts witruimte of bevat ten minste één ongeldig teken.

destinationDirectoryName of sourceArchiveFileName is null.

Het opgegeven pad in destinationDirectoryName of sourceArchiveFileName overschrijdt de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

De naam van een vermelding in het archief is Empty, bevat slechts witruimte of bevat ten minste één ongeldig teken.

– of –

Als u een archiefvermelding ophaalt, wordt er een bestand gemaakt dat zich buiten de map bevindt die is opgegeven door destinationDirectoryName. (Dit kan bijvoorbeeld gebeuren als de vermeldingsnaam bovenliggende adreslijsttoegangsors bevat.)

– of –

Een archiefvermelding die moet worden geëxtraheerd, heeft dezelfde naam als een vermelding die al is geëxtraheerd of die bestaat in destinationDirectoryName.

De aanroeper heeft niet de vereiste machtigingen voor toegang tot het archief of de doelmap.

destinationDirectoryName of sourceArchiveFileName bevat een ongeldige indeling.

sourceArchiveFileName is niet gevonden.

Het archief dat is opgegeven door sourceArchiveFileName , is geen geldig zip-archief.

– of –

Er is geen archiefvermelding gevonden of is beschadigd.

– of –

Een archiefvermelding is gecomprimeerd met behulp van een compressiemethode die niet wordt ondersteund.

Voorbeelden

In dit voorbeeld ziet u hoe u een zip-archief maakt en extraheert met behulp van de ZipFile klasse. Het comprimeert de inhoud van een map in een zip-archief en extraheert die inhoud naar een nieuwe map. Als u de ZipFile klasse wilt gebruiken, moet u verwijzen naar de System.IO.Compression.FileSystem assembly in uw project.

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

Opmerkingen

Met deze methode worden de opgegeven map en alle submappen gemaakt. De doelmap kan niet al bestaan. Uitzonderingen met betrekking tot het valideren van de paden in de destinationDirectoryName of sourceArchiveFileName parameters worden gegenereerd vóór extractie. Als er anders een fout optreedt tijdens het extraheren, blijft het archief gedeeltelijk geëxtraheerd. Elk uitgepakt bestand heeft hetzelfde relatieve pad naar de map die is destinationDirectoryName opgegeven als de bronvermelding, moet in de hoofdmap van het archief staan.

Als een vermelding in het zip-archief een symbolische koppeling is, wordt deze geëxtraheerd als een gewone map, omdat symbolische koppelingsgegevens niet behouden blijven in de ZIP-indeling. Als destinationDirectoryName of een van de bovenliggende mappen een bestaande verbinding of symbolische koppeling is, wordt de koppeling gevolgd en wordt de extractie naar de uiteindelijke doelmap geschreven.

Waarschuwing

Deze methode beperkt niet de totale niet-gecomprimeerde grootte of het aantal items dat uit het archief is geëxtraheerd. Wanneer u archieven van niet-vertrouwde bronnen verwerkt, moet u de items handmatig herhalen met behulp van ZipArchiveen controleren of de totale niet-gecomprimeerde grootte en het aantal vermeldingen binnen acceptabele limieten voor uw scenario vallen.

Van toepassing op

ExtractToDirectory(String, String, Boolean)

Hiermee worden alle bestanden in het opgegeven archief geëxtraheerd naar een map in het bestandssysteem.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

Parameters

sourceArchiveFileName
String

Het pad op het bestandssysteem naar het archief dat moet worden geëxtraheerd.

destinationDirectoryName
String

Het pad naar de doelmap in het bestandssysteem.

overwriteFiles
Boolean

true bestanden te overschrijven; false Anders.

Uitzonderingen

sourceArchiveFileName of destinationDirectoryName is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens zoals gedefinieerd door InvalidPathChars.

sourceArchiveFileName of destinationDirectoryName is null.

sourceArchiveFileName of destinationDirectoryName geeft een pad, een bestandsnaam of beide op die de door het systeem gedefinieerde maximumlengte overschrijden.

Het pad dat is opgegeven door sourceArchiveFileName of destinationDirectoryName is ongeldig (bijvoorbeeld op een niet-toegewezen station).

overwriteFiles is false en destinationDirectoryName bevat al een bestand met dezelfde naam als een bestand dat wordt geëxtraheerd.

– of –

Er is een I/O-fout opgetreden.

– of –

De naam van een ZipArchiveEntry is nullengte, bevat alleen witruimte of bevat een of meer ongeldige tekens zoals gedefinieerd door InvalidPathChars.

– of –

Het extraheren van een ZipArchiveEntry bestand resulteert in een bestandsbestemming die zich buiten de doelmap bevindt (bijvoorbeeld vanwege bovenliggende adreslijsttoegangsors).

– of –

A ZipArchiveEntry heeft dezelfde naam als een vermelding uit hetzelfde archief dat al is geëxtraheerd.

De beller heeft niet de vereiste machtiging.

sourceArchiveFileName of destinationDirectoryName heeft een ongeldige indeling.

sourceArchiveFileName is niet gevonden.

Het archief dat is opgegeven door sourceArchiveFileName , is niet geldig ZipArchive.

– of –

Er ZipArchiveEntry is geen gevonden of beschadigd.

– of –

Een ZipArchiveEntry is gecomprimeerd met behulp van een compressiemethode die niet wordt ondersteund.

Opmerkingen

Als er een fout optreedt tijdens het extraheren van het archief, blijft het archief gedeeltelijk geëxtraheerd.

Elke vermelding wordt geëxtraheerd, zodat het uitgepakte bestand hetzelfde relatieve pad heeft als destinationDirectoryName de vermelding in het archief.

De sourceArchiveFileName parameters destinationDirectoryName accepteren zowel relatieve als absolute paden. Een relatief pad wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap.

Als een vermelding in het zip-archief een symbolische koppeling is, wordt deze geëxtraheerd als een gewone map, omdat symbolische koppelingsgegevens niet behouden blijven in de ZIP-indeling. Als destinationDirectoryName of een van de bovenliggende mappen een bestaande verbinding of symbolische koppeling is, wordt de koppeling gevolgd en wordt de extractie naar de uiteindelijke doelmap geschreven.

Als een te archiveren bestand een ongeldige datum en tijd heeft die voor het laatst is gewijzigd, wordt de eerste datum en tijd in de indeling van de zip-tijdstempel (middernacht op 1 januari 1980) gebruikt.

Waarschuwing

Deze methode beperkt niet de totale niet-gecomprimeerde grootte of het aantal items dat uit het archief is geëxtraheerd. Wanneer u archieven van niet-vertrouwde bronnen verwerkt, moet u de items handmatig herhalen met behulp van ZipArchiveen controleren of de totale niet-gecomprimeerde grootte en het aantal vermeldingen binnen acceptabele limieten voor uw scenario vallen.

Van toepassing op

ExtractToDirectory(String, String, Encoding)

Extraheert alle bestanden in het opgegeven zip-archief naar een map in het bestandssysteem en gebruikt de opgegeven tekencodering voor vermeldingsnamen en opmerkingen.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

Parameters

sourceArchiveFileName
String

Het pad naar het archief dat moet worden geëxtraheerd.

destinationDirectoryName
String

Het pad naar de map waarin de geëxtraheerde bestanden moeten worden opgeslagen, opgegeven als een relatief of absoluut pad. Een relatief pad wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap.

entryNameEncoding
Encoding

De codering die moet worden gebruikt bij het lezen of schrijven van invoernamen en opmerkingen in dit archief. Geef alleen een waarde op voor deze parameter wanneer een codering is vereist voor interoperabiliteit met zip-archiefhulpprogramma's en -bibliotheken die UTF-8-codering niet ondersteunen voor vermeldingsnamen of opmerkingen.

Uitzonderingen

destinationDirectoryName of sourceArchiveFileName is Empty, bevat slechts witruimte of bevat ten minste één ongeldig teken.

– of –

entryNameEncoding is ingesteld op een Andere Unicode-codering dan UTF-8.

destinationDirectoryName of sourceArchiveFileName is null.

Het opgegeven pad in destinationDirectoryName of sourceArchiveFileName overschrijdt de door het systeem gedefinieerde maximumlengte.

Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).

De naam van een vermelding in het archief is Empty, bevat slechts witruimte of bevat ten minste één ongeldig teken.

– of –

Als u een archiefvermelding ophaalt, wordt er een bestand gemaakt dat zich buiten de map bevindt die is opgegeven door destinationDirectoryName. (Dit kan bijvoorbeeld gebeuren als de vermeldingsnaam bovenliggende adreslijsttoegangsors bevat.)

– of –

Een archiefvermelding die moet worden geëxtraheerd, heeft dezelfde naam als een vermelding die al is geëxtraheerd of die bestaat in destinationDirectoryName.

De aanroeper heeft niet de vereiste machtigingen voor toegang tot het archief of de doelmap.

destinationDirectoryName of sourceArchiveFileName bevat een ongeldige indeling.

sourceArchiveFileName is niet gevonden.

Het archief dat is opgegeven door sourceArchiveFileName , is geen geldig zip-archief.

– of –

Er is geen archiefvermelding gevonden of is beschadigd.

– of –

Een archiefvermelding is gecomprimeerd met behulp van een compressiemethode die niet wordt ondersteund.

Opmerkingen

Met deze methode worden de opgegeven map en alle submappen gemaakt, indien nodig. Uitzonderingen met betrekking tot het valideren van de paden in de destinationDirectoryName of sourceArchiveFileName parameters worden gegenereerd vóór extractie. Als er anders een fout optreedt tijdens het extraheren, blijft het archief gedeeltelijk geëxtraheerd. Elk uitgepakt bestand heeft hetzelfde relatieve pad naar de map die is destinationDirectoryName opgegeven als de bronvermelding, moet in de hoofdmap van het archief staan.

Als een vermelding in het zip-archief een symbolische koppeling is, wordt deze geëxtraheerd als een gewone map, omdat symbolische koppelingsgegevens niet behouden blijven in de ZIP-indeling. Als destinationDirectoryName of een van de bovenliggende mappen een bestaande verbinding of symbolische koppeling is, wordt de koppeling gevolgd en wordt de extractie naar de uiteindelijke doelmap geschreven.

Als entryNameEncoding deze is ingesteld op een andere waarde dan null, worden invoernamen en opmerkingen gedecodeerd volgens de volgende regels:

  • Voor vermeldingen waarbij de taalcoderingsvlag (in de bitvlag voor algemeen gebruik van de lokale bestandskoptekst) niet is ingesteld, worden de invoernamen en opmerkingen gedecodeerd met behulp van de opgegeven codering.
  • Voor vermeldingen waarin de vlag voor taalcodering is ingesteld, worden de invoernamen en opmerkingen gedecodeerd met behulp van UTF-8.

Als entryNameEncoding deze optie is ingesteld null, worden invoernamen en opmerkingen gedecodeerd volgens de volgende regels:

  • Voor vermeldingen waarin de taalcoderingsvlag (in de bitvlag voor algemeen gebruik van de lokale bestandskoptekst) niet is ingesteld, worden invoernamen en opmerkingen gedecodeerd met behulp van de huidige standaardcodepagina van het systeem.
  • Voor vermeldingen waarin de vlag voor taalcodering is ingesteld, worden de invoernamen en opmerkingen gedecodeerd met behulp van UTF-8.

Waarschuwing

Deze methode beperkt niet de totale niet-gecomprimeerde grootte of het aantal items dat uit het archief is geëxtraheerd. Wanneer u archieven van niet-vertrouwde bronnen verwerkt, moet u de items handmatig herhalen met behulp van ZipArchiveen controleren of de totale niet-gecomprimeerde grootte en het aantal vermeldingen binnen acceptabele limieten voor uw scenario vallen.

Van toepassing op

ExtractToDirectory(String, String, Encoding, Boolean)

Hiermee worden alle bestanden in het opgegeven archief geëxtraheerd naar een map in het bestandssysteem.

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory(string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

Parameters

sourceArchiveFileName
String

Het pad op het bestandssysteem naar het archief dat moet worden geëxtraheerd.

destinationDirectoryName
String

Het pad naar de doelmap in het bestandssysteem.

entryNameEncoding
Encoding

De codering die moet worden gebruikt bij het lezen van invoernamen en opmerkingen in deze ZipArchive.

overwriteFiles
Boolean

true bestanden te overschrijven; false Anders.

Uitzonderingen

sourceArchiveFileName of destinationDirectoryName is een tekenreeks met lengte nul, bevat alleen witruimte of bevat een of meer ongeldige tekens zoals gedefinieerd door InvalidPathChars.

– of –

entryNameEncoding is ingesteld op een Andere Unicode-codering dan UTF-8.

sourceArchiveFileName of destinationDirectoryName is null.

sourceArchiveFileName of destinationDirectoryName geeft een pad, een bestandsnaam of beide op die de door het systeem gedefinieerde maximumlengte overschrijden.

Het pad dat is opgegeven door sourceArchiveFileName of destinationDirectoryName is ongeldig (bijvoorbeeld op een niet-toegewezen station).

overwriteFiles is false en een archiefvermelding die moet worden geëxtraheerd, heeft dezelfde naam als een bestand dat al bestaat in destinationDirectoryName.

– of –

Er is een I/O-fout opgetreden.

– of –

De naam van een ZipArchiveEntry is nullengte, bevat alleen witruimte of bevat een of meer ongeldige tekens zoals gedefinieerd door InvalidPathChars.

– of –

Het extraheren van een ZipArchiveEntry bestand resulteert in een bestandsbestemming die zich buiten de doelmap bevindt (bijvoorbeeld vanwege bovenliggende adreslijsttoegangsors).

– of –

A ZipArchiveEntry heeft dezelfde naam als een al geëxtraheerde vermelding uit hetzelfde archief.

De beller heeft niet de vereiste machtiging.

sourceArchiveFileName of destinationDirectoryName heeft een ongeldige indeling.

sourceArchiveFileName is niet gevonden.

Het archief dat is opgegeven door sourceArchiveFileName , is niet geldig ZipArchive.

– of –

Er is geen archiefvermelding gevonden of is beschadigd.

– of –

Een archiefvermelding is gecomprimeerd met behulp van een compressiemethode die niet wordt ondersteund.

Opmerkingen

Als er een fout optreedt tijdens het extraheren van het archief, blijft het archief gedeeltelijk geëxtraheerd.

Elke vermelding wordt geëxtraheerd, zodat het uitgepakte bestand hetzelfde relatieve pad heeft als destinationDirectoryName de vermelding in het archief.

De sourceArchiveFileName parameters destinationDirectoryName accepteren zowel relatieve als absolute paden. Een relatief pad wordt geïnterpreteerd als relatief ten opzichte van de huidige werkmap.

Als een vermelding in het zip-archief een symbolische koppeling is, wordt deze geëxtraheerd als een gewone map, omdat symbolische koppelingsgegevens niet behouden blijven in de ZIP-indeling. Als destinationDirectoryName of een van de bovenliggende mappen een bestaande verbinding of symbolische koppeling is, wordt de koppeling gevolgd en wordt de extractie naar de uiteindelijke doelmap geschreven.

Als een te archiveren bestand een ongeldige datum en tijd heeft die voor het laatst is gewijzigd, wordt de eerste datum en tijd in de indeling van de zip-tijdstempel (middernacht op 1 januari 1980) gebruikt.

Waarschuwing

Deze methode beperkt niet de totale niet-gecomprimeerde grootte of het aantal items dat uit het archief is geëxtraheerd. Wanneer u archieven van niet-vertrouwde bronnen verwerkt, moet u de items handmatig herhalen met behulp van ZipArchiveen controleren of de totale niet-gecomprimeerde grootte en het aantal vermeldingen binnen acceptabele limieten voor uw scenario vallen.

Van toepassing op