相关文章推荐
逆袭的黑框眼镜  ·  PolarDB ...·  6 月前    · 
火星上的油条  ·  javascript - Babel7 ...·  1 年前    · 
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)

一个在存档中的输入名称是 Empty ,仅包含空白或包含至少一个无效字符。

- 或 -

提取存档条目将生成在 destinationDirectoryName 指定的目录之外的一个文件。 (例如,如果该输入名称包括父目录访问器,则这可能发生。)

- 或 -

要提取的存档项与已提取或存在于 中的 destinationDirectoryName 条目同名。

此示例演示如何使用 ZipFile 类创建和提取 zip 存档。 它将文件夹的内容压缩到 zip 存档中,并将该内容提取到新文件夹。 若要使用 ZipFile 类,必须在项目中引用 System.IO.Compression.FileSystem 程序集。

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); 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

此方法创建指定的目录和所有子目录。 目标目录不能已经存在。 与验证 或 sourceArchiveFileName 参数中的 destinationDirectoryName 路径相关的异常在提取之前引发。 否则,如果在提取过程中发生错误,存档将保持部分提取状态。 每个提取的文件都具有指定的 destinationDirectoryName 目录的相对路径,因为它的源条目对存档的根目录具有相同的路径。

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)

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

- 或 -

提取 ZipArchiveEntry 将导致文件目标位于目标目录之外(例如,由于父目录访问器)。

- 或 -

ZipArchiveEntry 已提取的同一存档中的条目同名。

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

将提取每个条目,以便提取的文件具有与存档项相同的相对路径 destinationDirectoryName

sourceArchiveFileName destinationDirectoryName 参数接受相对路径和绝对路径。 相对路径被解释为相对于当前工作目录。

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

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);
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)
ArgumentException

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

- 或 -

entryNameEncoding 设置为不同于 UTF-8 的 Unicode 编码。

一个在存档中的输入名称是 Empty ,仅包含空白或包含至少一个无效字符。

- 或 -

提取存档条目将生成在 destinationDirectoryName 指定的目录之外的一个文件。 (例如,如果该输入名称包括父目录访问器,则这可能发生。)

- 或 -

要提取的存档项与已提取或存在于 中的 destinationDirectoryName 条目同名。

如有必要,此方法会创建指定的目录和所有子目录。 与验证 或 sourceArchiveFileName 参数中的 destinationDirectoryName 路径相关的异常在提取之前引发。 否则,如果在提取过程中发生错误,存档将保持部分提取状态。 每个提取的文件都具有指定的 destinationDirectoryName 目录的相对路径,因为它的源条目对存档的根目录具有相同的路径。

如果 entryNameEncoding 设置为以外的 null 值,则根据以下规则对条目名称进行解码:

  • 对于未设置本地文件头) 的常规用途位标志 (语言编码标志的条目名称,将使用指定的编码解码条目名称。
  • 对于设置了语言编码标志的条目,将使用 UTF-8 解码条目名称。
  • 如果 entryNameEncoding 设置为 null ,则根据以下规则解码条目名称:

  • 对于未设置本地文件头) 的常规用途位标志 (语言编码标志的条目,将使用当前系统默认代码页解码条目名称。
  • 对于设置了语言编码标志的条目,将使用 UTF-8 解码条目名称。
  • 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);
    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)
    ArgumentException

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

    - 或 -

    entryNameEncoding 设置为不同于 UTF-8 的 Unicode 编码。

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

    - 或 -

    提取 ZipArchiveEntry 将导致文件目标位于目标目录之外(例如,由于父目录访问器)。

    - 或 -

    ZipArchiveEntry 与一个已从同一存档中解压缩的项同名。

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

    将提取每个条目,以便提取的文件具有与条目到存档的相同相对路径 destinationDirectoryName

    sourceArchiveFileName destinationDirectoryName 参数接受相对路径和绝对路径。 相对路径被解释为相对于当前工作目录。

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