ZipFileExtensions.ExtractToDirectory 方法

定义

重载

名称 说明
ExtractToDirectory(ZipArchive, String)

将 zip 存档中的所有文件提取到文件系统上的目录。

ExtractToDirectory(ZipArchive, String, Boolean)

将存档中的所有文件提取到文件系统上的目录。

ExtractToDirectory(ZipArchive, String)

Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs

将 zip 存档中的所有文件提取到文件系统上的目录。

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String)

参数

source
ZipArchive

要从中提取文件的 zip 存档。

destinationDirectoryName
String

要在其中放置提取文件的目录的路径。 可以指定相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。

例外

destinationDirectoryNameEmpty,仅包含空格,或至少包含一个无效字符。

destinationDirectoryNamenull

指定的路径超过系统定义的最大长度。

指定的路径无效(例如,它位于未映射的驱动器上)。

存档 Empty中条目的名称仅包含空格,或至少包含一个无效字符。

-或-

从存档中提取条目将创建一个超出指定 destinationDirectoryName目录的文件。 (例如,如果条目名称包含父目录访问器,则可能发生这种情况。

-或-

存档中的两个或多个条目具有相同的名称。

调用方没有写入目标目录所需的权限。

destinationDirectoryName 包含无效格式。

找不到存档项或已损坏。

-或-

存档项是使用不支持的压缩方法压缩的。

示例

以下示例演示如何从现有文件在 zip 存档中创建一个新条目,并将存档提取到新目录。

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

注解

此方法创建由 destinationDirectoryName. 该方法还会创建反映 zip 存档中的层次结构的子目录。 如果在提取过程中发生错误,存档将保持部分提取。 每个提取的文件都具有与其源条目指定的 destinationDirectoryName 目录的相对路径相同的存档根目录。

适用于

ExtractToDirectory(ZipArchive, String, Boolean)

Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs
Source:
ZipFileExtensions.ZipArchive.Extract.cs

将存档中的所有文件提取到文件系统上的目录。

public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * bool -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean)

参数

source
ZipArchive

ZipArchive 提取的。

destinationDirectoryName
String

文件系统上目标目录的路径。 路径可以是相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。

overwriteFiles
Boolean

true 覆盖现有文件; false 否则。

例外

destinationDirectoryName 是一个零长度字符串,仅包含空格,或包含一个或多个由定义定义的 InvalidPathChars无效字符。

destinationDirectoryNamenull

指定的路径、文件名或两者都超过了系统定义的最大长度。

指定的路径无效(例如,它位于未映射的驱动器上)。

名称 ZipArchiveEntry 为零长度,仅包含空格,或包含一个或多个无效字符,如定义 InvalidPathChars

-或-

提取 a ZipArchiveEntry 将导致目标文件位于外部 destinationDirectoryName (例如,如果条目名称包含父目录访问器)。

-或-

A ZipArchiveEntry 的名称与已从同一存档中提取的条目相同。

调用方没有所需的权限。

destinationDirectoryName 格式无效。

找不到或损坏了 A ZipArchiveEntry

-或-

已使用不支持的压缩方法压缩了 A ZipArchiveEntry

注解

指定的目录可能已存在。 此方法在必要时创建指定的目录和所有子目录。

如果在提取存档时出错,存档将保持部分提取。

提取每个条目,以便提取的文件具有与该条目的根目录相同的相对路径 destinationDirectoryName

如果要存档的文件具有无效的上次修改时间,则使用 Zip 时间戳格式(1980 年 1 月 1 日午夜)表示的第一个日期和时间。

适用于