ZipFile.ExtractToDirectory Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Extraherar alla filer i det angivna zip-arkivet till en katalog i filsystemet.
Överlagringar
| Name | Description |
|---|---|
| ExtractToDirectory(String, String) |
Extraherar alla filer i det angivna zip-arkivet till en katalog i filsystemet. |
| ExtractToDirectory(String, String, Boolean) |
Extraherar alla filer i det angivna arkivet till en katalog i filsystemet. |
| ExtractToDirectory(String, String, Encoding) |
Extraherar alla filer i det angivna zip-arkivet till en katalog i filsystemet och använder den angivna teckenkodningen för postnamn och kommentarer. |
| ExtractToDirectory(String, String, Encoding, Boolean) |
Extraherar alla filer i det angivna arkivet till en katalog i filsystemet. |
ExtractToDirectory(String, String)
Extraherar alla filer i det angivna zip-arkivet till en katalog i filsystemet.
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)
Parametrar
- sourceArchiveFileName
- String
Sökvägen till arkivet som ska extraheras.
- destinationDirectoryName
- String
Sökvägen till den katalog där de extraherade filerna ska placeras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.
Undantag
destinationDirectoryName eller sourceArchiveFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.
destinationDirectoryName eller sourceArchiveFileName är null.
Den angivna sökvägen i destinationDirectoryName eller sourceArchiveFileName överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Namnet på en post i arkivet är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.
-eller-
Om du extraherar en arkivpost skapas en fil som ligger utanför den katalog som anges av destinationDirectoryName. (Detta kan till exempel inträffa om postnamnet innehåller överordnade katalogåtkomster.)
-eller-
En arkivpost som ska extraheras har samma namn som en post som redan har extraherats eller som finns i destinationDirectoryName.
Anroparen har inte den behörighet som krävs för att komma åt arkivet eller målkatalogen.
destinationDirectoryName eller sourceArchiveFileName innehåller ett ogiltigt format.
sourceArchiveFileName hittades inte.
Arkivet som anges av sourceArchiveFileName är inte ett giltigt zip-arkiv.
-eller-
En arkivpost hittades inte eller var skadad.
-eller-
En arkivpost komprimerades med hjälp av en komprimeringsmetod som inte stöds.
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 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
Den här metoden skapar den angivna katalogen och alla underkataloger. Målkatalogen kan inte redan finnas. Undantag som rör validering av sökvägarna i parametrarna destinationDirectoryName eller sourceArchiveFileName genereras före extrahering. Annars, om ett fel uppstår under extrahering, förblir arkivet delvis extraherat. Varje extraherad fil har samma relativa sökväg till den katalog som anges av destinationDirectoryName som källposten har till roten i arkivet.
Om en post i zip-arkivet är en symbolisk länk extraheras den som en vanlig mapp eftersom symbolisk länkinformation inte bevaras i ZIP-format.
Om destinationDirectoryName eller någon av dess överordnade kataloger är en befintlig koppling eller symbolisk länk följs länken och extraheringsskrivningarna till den slutliga målmappen.
Varning
Den här metoden begränsar inte den totala okomprimerade storleken eller antalet poster som extraheras från arkivet. När du bearbetar arkiv från ej betrodda källor itererar du över posterna manuellt med hjälp av ZipArchiveoch verifierar att den totala okomprimerade storleken och antalet poster ligger inom godkända gränser för ditt scenario.
Gäller för
ExtractToDirectory(String, String, Boolean)
Extraherar alla filer i det angivna arkivet till en katalog i filsystemet.
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)
Parametrar
- sourceArchiveFileName
- String
Sökvägen i filsystemet till arkivet som ska extraheras.
- destinationDirectoryName
- String
Sökvägen till målkatalogen i filsystemet.
- overwriteFiles
- Boolean
true för att skriva över filer; false Annars.
Undantag
sourceArchiveFileName eller destinationDirectoryName är en sträng med noll längd, innehåller endast blanksteg eller innehåller ett eller flera ogiltiga tecken som definierats av InvalidPathChars.
sourceArchiveFileName eller destinationDirectoryName är null.
sourceArchiveFileName eller destinationDirectoryName anger en sökväg, ett filnamn eller båda som överskrider den systemdefinierade maximala längden.
Sökvägen som anges av sourceArchiveFileName eller destinationDirectoryName är ogiltig (till exempel finns den på en ommappad enhet).
overwriteFiles är false och destinationDirectoryName innehåller redan en fil med samma namn som en fil som extraheras.
-eller-
Ett I/O-fel har inträffat.
-eller-
Namnet på en ZipArchiveEntry är noll längd, innehåller endast blanksteg eller innehåller ett eller flera ogiltiga tecken enligt definitionen av InvalidPathChars.
-eller-
Om du extraherar en ZipArchiveEntry skulle det resultera i ett filmål som ligger utanför målkatalogen (till exempel på grund av överordnade katalogåtkomster).
-eller-
A ZipArchiveEntry har samma namn som en post från samma arkiv som redan har extraherats.
Anroparen har inte den behörighet som krävs.
sourceArchiveFileName eller destinationDirectoryName är i ett ogiltigt format.
sourceArchiveFileName hittades inte.
Arkivet som anges av sourceArchiveFileName är inte giltigt ZipArchive.
-eller-
Det ZipArchiveEntry gick inte att hitta eller var skadad.
-eller-
A ZipArchiveEntry har komprimerats med en komprimeringsmetod som inte stöds.
Kommentarer
Om det uppstår ett fel när arkivet extraheras förblir arkivet delvis extraherat.
Varje post extraheras så att den extraherade filen har samma relativa sökväg till destinationDirectoryName som posten har till arkivet.
Parametrarna sourceArchiveFileName och destinationDirectoryName accepterar både relativa och absoluta sökvägar. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.
Om en post i zip-arkivet är en symbolisk länk extraheras den som en vanlig mapp eftersom symbolisk länkinformation inte bevaras i ZIP-format.
Om destinationDirectoryName eller någon av dess överordnade kataloger är en befintlig koppling eller symbolisk länk följs länken och extraheringsskrivningarna till den slutliga målmappen.
Om en fil som ska arkiveras har en ogiltig senast ändrad tid används det första datum och den tid som visas i zip-tidsstämpelformatet (midnatt den 1 januari 1980).
Varning
Den här metoden begränsar inte den totala okomprimerade storleken eller antalet poster som extraheras från arkivet. När du bearbetar arkiv från ej betrodda källor itererar du över posterna manuellt med hjälp av ZipArchiveoch verifierar att den totala okomprimerade storleken och antalet poster ligger inom godkända gränser för ditt scenario.
Gäller för
ExtractToDirectory(String, String, Encoding)
Extraherar alla filer i det angivna zip-arkivet till en katalog i filsystemet och använder den angivna teckenkodningen för postnamn och kommentarer.
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)
Parametrar
- sourceArchiveFileName
- String
Sökvägen till arkivet som ska extraheras.
- destinationDirectoryName
- String
Sökvägen till den katalog där de extraherade filerna ska placeras, som anges som en relativ eller absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.
- 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
destinationDirectoryName eller sourceArchiveFileName ä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.
destinationDirectoryName eller sourceArchiveFileName är null.
Den angivna sökvägen i destinationDirectoryName eller sourceArchiveFileName överskrider den systemdefinierade maximala längden.
Den angivna sökvägen är ogiltig (den finns till exempel på en ommappad enhet).
Namnet på en post i arkivet är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.
-eller-
Om du extraherar en arkivpost skapas en fil som ligger utanför den katalog som anges av destinationDirectoryName. (Detta kan till exempel inträffa om postnamnet innehåller överordnade katalogåtkomster.)
-eller-
En arkivpost som ska extraheras har samma namn som en post som redan har extraherats eller som finns i destinationDirectoryName.
Anroparen har inte den behörighet som krävs för att komma åt arkivet eller målkatalogen.
destinationDirectoryName eller sourceArchiveFileName innehåller ett ogiltigt format.
sourceArchiveFileName hittades inte.
Arkivet som anges av sourceArchiveFileName är inte ett giltigt zip-arkiv.
-eller-
En arkivpost hittades inte eller var skadad.
-eller-
En arkivpost komprimerades med hjälp av en komprimeringsmetod som inte stöds.
Kommentarer
Den här metoden skapar den angivna katalogen och alla underkataloger om det behövs. Undantag som rör validering av sökvägarna i parametrarna destinationDirectoryName eller sourceArchiveFileName genereras före extrahering. Annars, om ett fel uppstår under extrahering, förblir arkivet delvis extraherat. Varje extraherad fil har samma relativa sökväg till den katalog som anges av destinationDirectoryName som källposten har till roten i arkivet.
Om en post i zip-arkivet är en symbolisk länk extraheras den som en vanlig mapp eftersom symbolisk länkinformation inte bevaras i ZIP-format.
Om destinationDirectoryName eller någon av dess överordnade kataloger är en befintlig koppling eller symbolisk länk följs länken och extraheringsskrivningarna till den slutliga målmappen.
Om entryNameEncoding är inställt på ett annat värde än nullavkodas postnamn och kommentarer enligt följande regler:
- För poster där språkkodningsflaggan (i den allmänna bitflaggan för det lokala filhuvudet) inte anges, avkodas postnamnen och kommentarerna med hjälp av den angivna kodningen.
- För poster där språkkodningsflaggan anges avkodas postnamnen och kommentarerna med HJÄLP av UTF-8.
Om entryNameEncoding är inställt på nullavkodas postnamn och kommentarer enligt följande regler:
- För poster där språkkodningsflaggan (i den allmänna bitflaggan för det lokala filhuvudet) inte anges avkodas postnamn och kommentarer med hjälp av systemets aktuella standardkodsida.
- För poster där språkkodningsflaggan anges avkodas postnamnen och kommentarerna med HJÄLP av UTF-8.
Varning
Den här metoden begränsar inte den totala okomprimerade storleken eller antalet poster som extraheras från arkivet. När du bearbetar arkiv från ej betrodda källor itererar du över posterna manuellt med hjälp av ZipArchiveoch verifierar att den totala okomprimerade storleken och antalet poster ligger inom godkända gränser för ditt scenario.
Gäller för
ExtractToDirectory(String, String, Encoding, Boolean)
Extraherar alla filer i det angivna arkivet till en katalog i filsystemet.
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)
Parametrar
- sourceArchiveFileName
- String
Sökvägen i filsystemet till arkivet som ska extraheras.
- destinationDirectoryName
- String
Sökvägen till målkatalogen i filsystemet.
- entryNameEncoding
- Encoding
Kodningen som ska användas vid läsning av postnamn och kommentarer i den här ZipArchive.
- overwriteFiles
- Boolean
true för att skriva över filer; false Annars.
Undantag
sourceArchiveFileName eller destinationDirectoryName är en sträng med noll längd, innehåller endast blanksteg eller innehåller ett eller flera ogiltiga tecken som definierats av InvalidPathChars.
-eller-
entryNameEncoding är inställt på en Unicode-kodning som inte är UTF-8.
sourceArchiveFileName eller destinationDirectoryName är null.
sourceArchiveFileName eller destinationDirectoryName anger en sökväg, ett filnamn eller båda som överskrider den systemdefinierade maximala längden.
Sökvägen som anges av sourceArchiveFileName eller destinationDirectoryName är ogiltig (till exempel finns den på en ommappad enhet).
overwriteFiles är false och en arkivpost som ska extraheras har samma namn som en fil som redan finns i destinationDirectoryName.
-eller-
Ett I/O-fel har inträffat.
-eller-
Namnet på en ZipArchiveEntry är noll längd, innehåller endast blanksteg eller innehåller ett eller flera ogiltiga tecken enligt definitionen av InvalidPathChars.
-eller-
Om du extraherar en ZipArchiveEntry skulle det resultera i ett filmål som ligger utanför målkatalogen (till exempel på grund av överordnade katalogåtkomster).
-eller-
A ZipArchiveEntry har samma namn som en redan extraherad post från samma arkiv.
Anroparen har inte den behörighet som krävs.
sourceArchiveFileName eller destinationDirectoryName är i ett ogiltigt format.
sourceArchiveFileName hittades inte.
Arkivet som anges av sourceArchiveFileName är inte giltigt ZipArchive.
-eller-
En arkivpost hittades inte eller var skadad.
-eller-
En arkivpost har komprimerats med en komprimeringsmetod som inte stöds.
Kommentarer
Om det uppstår ett fel när arkivet extraheras förblir arkivet delvis extraherat.
Varje post extraheras så att den extraherade filen har samma relativa sökväg till destinationDirectoryName som posten har till arkivet.
Parametrarna sourceArchiveFileName och destinationDirectoryName accepterar både relativa och absoluta sökvägar. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.
Om en post i zip-arkivet är en symbolisk länk extraheras den som en vanlig mapp eftersom symbolisk länkinformation inte bevaras i ZIP-format.
Om destinationDirectoryName eller någon av dess överordnade kataloger är en befintlig koppling eller symbolisk länk följs länken och extraheringsskrivningarna till den slutliga målmappen.
Om en fil som ska arkiveras har en ogiltig senast ändrad tid används det första datum och den tid som visas i zip-tidsstämpelformatet (midnatt den 1 januari 1980).
Varning
Den här metoden begränsar inte den totala okomprimerade storleken eller antalet poster som extraheras från arkivet. När du bearbetar arkiv från ej betrodda källor itererar du över posterna manuellt med hjälp av ZipArchiveoch verifierar att den totala okomprimerade storleken och antalet poster ligger inom godkända gränser för ditt scenario.