ZipFile.CreateFromDirectoryAsync 方法

定义

重载

名称 说明
CreateFromDirectoryAsync(String, Stream, CancellationToken)

在指定流中异步创建 zip 存档,其中包含指定目录中的文件和目录。

CreateFromDirectoryAsync(String, String, CancellationToken)

在路径 destinationArchiveFileName 上异步创建 zip 存档,其中包含由指定的 sourceDirectoryName目录的文件和目录。

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken)

使用指定的压缩级别(可选)以异步方式在指定流中创建 zip 存档,该流包含指定目录中的文件和目录(可选)。

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken)

在路径 destinationArchiveFileName 上异步创建 zip 存档,其中包含由指定的 sourceDirectoryName目录中的文件和目录。

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken)

使用指定压缩级别和条目名称的字符编码(可选)在指定流中创建包含指定目录中的文件和目录的 zip 存档,并选择性地包括基目录。

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken)

在路径 destinationArchiveFileName 上异步创建 zip 存档,其中包含由指定的 sourceDirectoryName目录中的文件和目录。

CreateFromDirectoryAsync(String, Stream, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

在指定流中异步创建 zip 存档,其中包含指定目录中的文件和目录。

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, Optional cancellationToken As CancellationToken = Nothing) As Task

参数

sourceDirectoryName
String

要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。

destination
Stream

要存储 zip 存档的流。

cancellationToken
CancellationToken

用于监视取消请求的取消令牌。

返回

例外

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

-或-

destination 不支持写入。

sourceDirectoryNamedestinationnull.

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

sourceDirectoryName 无效或不存在(例如,它位于未映射的驱动器上)。

无法打开指定目录中的文件。

-或-

打开要存档的文件时发生 I/O 错误。

sourceDirectoryName 包含无效格式。

异步作被取消。

注解

文件系统中的目录结构保留在存档中。 如果目录为空,则会创建空存档。

此方法重载不包括存档中的基目录,并且不允许指定压缩级别。

如果要包含基目录或指定压缩级别,请调用 CreateFromDirectory(String, Stream, CompressionLevel, Boolean) 方法重载。

如果目录中的文件无法添加到存档中,存档将不完整且无效,并且该方法将引发 IOException 异常。

适用于

CreateFromDirectoryAsync(String, String, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

在路径 destinationArchiveFileName 上异步创建 zip 存档,其中包含由指定的 sourceDirectoryName目录的文件和目录。

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

参数

sourceDirectoryName
String

要存档的文件系统上的目录的路径。

destinationArchiveFileName
String

要创建的存档的名称。

cancellationToken
CancellationToken

用于监视取消请求的取消令牌。

返回

例外

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

sourceDirectoryNamedestinationArchiveFileNamenull.

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

例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。

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

-或-

指定的 sourceDirectoryName 目录不存在。

destinationArchiveFileName 已存在。

-或-

打开要存档的文件时发生 I/O 错误。

destinationArchiveFileName 指定了目录。

-或-

调用方没有所需的权限。

sourceDirectoryNamedestinationArchiveFileName 格式无效。

异步作被取消。

注解

目录结构保留在存档中,对要存档的文件执行递归搜索。 存档不得存在。 如果目录为空,则会创建空存档。 如果目录中的文件无法添加到存档,存档将不完整且无效,并且该方法将引发异常。 此方法不包括存档中的基目录。

如果在将文件添加到存档时遇到错误,此方法将停止添加文件,并使存档处于无效状态。 允许路径指定相对路径或绝对路径信息。 相对路径信息解释为相对于当前工作目录。 如果存档中的文件在上次写入时间字段中的数据不是有效的 zip 时间戳,则 1980 年 1 月 1 日午夜的指示器值将用于文件的上次修改时间。如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。 由于未 CompressionLevel 指定,因此使用 ZipArchive 基础压缩算法的实现提供的默认;不会施加自己的默认值。

(目前,基础压缩算法由 DeflateStream 类提供。

适用于

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

使用指定的压缩级别(可选)以异步方式在指定流中创建 zip 存档,该流包含指定目录中的文件和目录(可选)。

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

参数

sourceDirectoryName
String

要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。

destination
Stream

要存储 zip 存档的流。

compressionLevel
CompressionLevel

枚举值之一,指示在创建条目时是强调速度还是压缩效率。

includeBaseDirectory
Boolean

true 如果包含存档根目录中的目录名称 sourceDirectoryNamefalse 则仅包含目录的内容。

cancellationToken
CancellationToken

用于监视取消请求的令牌。

返回

例外

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

-或-

destination 不支持写入。

sourceDirectoryNamedestinationnull.

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

sourceDirectoryName 无效或不存在(例如,它位于未映射的驱动器上)。

无法打开指定目录中的文件。

-或-

打开要存档的文件时发生 I/O 错误。

sourceDirectoryName 包含无效格式。

compressionLevel 不是有效 CompressionLevel 值。

异步作被取消。

注解

文件系统中的目录结构保留在存档中。 如果目录为空,则会创建空存档。

使用此方法重载指定压缩级别以及是否在存档中包含基目录。

如果目录中的文件无法添加到存档中,存档将不完整且无效,并且该方法将引发 IOException 异常。

适用于

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

在路径 destinationArchiveFileName 上异步创建 zip 存档,其中包含由指定的 sourceDirectoryName目录中的文件和目录。

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.IO.Compression.CompressionLevel * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

参数

sourceDirectoryName
String

要存档的文件系统上的目录的路径。

destinationArchiveFileName
String

要创建的存档的名称。

compressionLevel
CompressionLevel

指定压缩级别(速度/内存与压缩大小权衡)的枚举值之一。

includeBaseDirectory
Boolean

如果指示应将命名 的目录包含在存档的根目录,则为 false 指示应直接包含在存档中的文件和目录 sourceDirectoryName

cancellationToken
CancellationToken

用于监视取消请求的取消令牌。

返回

例外

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

sourceDirectoryNamedestinationArchiveFileNamenull.

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

例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。

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

-或-

指定的 sourceDirectoryName 目录不存在。

destinationArchiveFileName 已存在。

-或-

打开要存档的文件时发生 I/O 错误。

destinationArchiveFileName 指定了目录。

-或-

调用方没有所需的权限。

sourceDirectoryNamedestinationArchiveFileName 格式无效。

异步作被取消。

注解

目录结构保留在存档中,对要存档的文件执行递归搜索。 存档不得存在。 如果目录为空,将创建空存档。

如果目录中的文件无法添加到存档,存档将不完整且无效,并且该方法将引发异常。 此方法可以选择在存档中包含基目录。

如果在将文件添加到存档时遇到错误,此方法将停止添加文件并将存档保留为无效状态。 允许路径指定相对路径或绝对路径信息。 相对路径信息解释为相对于当前工作目录。 如果存档中的文件在上次写入时间字段中的数据不是有效的 zip 时间戳,则 1980 年 1 月 1 日午夜的指示器值将用于文件的上次修改时间。如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。 由于未 CompressionLevel 指定,因此将使用基础压缩算法的实现提供的默认; ZipArchive 不会施加自己的默认值。

(目前,基础压缩算法由 DeflateStream 类提供。

适用于

CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

使用指定压缩级别和条目名称的字符编码(可选)在指定流中创建包含指定目录中的文件和目录的 zip 存档,并选择性地包括基目录。

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

参数

sourceDirectoryName
String

要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。

destination
Stream

要存储 zip 存档的流。

compressionLevel
CompressionLevel

枚举值之一,指示在创建条目时是强调速度还是压缩效率。

includeBaseDirectory
Boolean

true 如果包含存档根目录中的目录名称 sourceDirectoryNamefalse 则仅包含目录的内容。

entryNameEncoding
Encoding

在此存档中读取或写入条目名称时要使用的编码。 仅当需要编码才能与不支持条目名称或注释的 UTF-8 编码的 zip 存档工具和库的互作性时,才为此参数指定值。

cancellationToken
CancellationToken

用于监视取消请求的取消令牌。

返回

例外

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

-或-

destination 不支持写入。

sourceDirectoryNamedestinationnull.

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

sourceDirectoryName 无效或不存在(例如,它位于未映射的驱动器上)。

无法打开指定目录中的文件。

-或-

打开要存档的文件时发生 I/O 错误。

sourceDirectoryName 包含无效格式。

compressionLevel 不是有效 CompressionLevel 值。

异步作被取消。

注解

文件系统中的目录结构保留在存档中。 如果目录为空,则会创建空存档。

使用此方法重载指定压缩级别和字符编码,以及是否在存档中包含基目录。

如果目录中的文件无法添加到存档中,存档将不完整且无效,并且该方法将引发 IOException 异常。

适用于

CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken)

Source:
ZipFile.Create.Async.cs
Source:
ZipFile.Create.Async.cs

在路径 destinationArchiveFileName 上异步创建 zip 存档,其中包含由指定的 sourceDirectoryName目录中的文件和目录。

public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding, System.Threading.CancellationToken cancellationToken = default);
static member CreateFromDirectoryAsync : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Shared Function CreateFromDirectoryAsync (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding, Optional cancellationToken As CancellationToken = Nothing) As Task

参数

sourceDirectoryName
String

要存档的文件系统上的目录的路径。

destinationArchiveFileName
String

要创建的存档的名称。

compressionLevel
CompressionLevel

指定压缩级别(速度/内存与压缩大小权衡)的枚举值之一。

includeBaseDirectory
Boolean

如果指示应将命名 的目录包含在存档的根目录,则为 false 指示应直接包含在存档中的文件和目录 sourceDirectoryName

entryNameEncoding
Encoding

在此 ZipArchive 中读取或写入条目名称和注释时要使用的编码。

cancellationToken
CancellationToken

用于监视取消请求的取消令牌。

返回

例外

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

sourceDirectoryNamedestinationArchiveFileNamenull.

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

例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。

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

-或-

指定的 sourceDirectoryName 目录不存在。

destinationArchiveFileName 已存在。

-或-

打开要存档的文件时发生 I/O 错误。

destinationArchiveFileName 指定了目录。

-或-

调用方没有所需的权限。

sourceDirectoryNamedestinationArchiveFileName 格式无效。

异步作被取消。

注解

目录结构保留在存档中,对要存档的文件执行递归搜索。 存档不得存在。 如果目录为空,将创建空存档。

如果目录中的文件无法添加到存档,存档将不完整且无效,并且该方法将引发异常。 此方法可以选择在存档中包含基目录。

如果在将文件添加到存档时遇到错误,此方法将停止添加文件并将存档保留为无效状态。 允许路径指定相对路径或绝对路径信息。 相对路径信息解释为相对于当前工作目录。 如果存档中的文件在上次写入时间字段中的数据不是有效的 zip 时间戳,则 1980 年 1 月 1 日午夜的指示器值将用于文件的上次修改时间。如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。 由于未 CompressionLevel 指定,因此将使用基础压缩算法的实现提供的默认; ZipArchive 不会施加自己的默认值。

(目前,基础压缩算法由 DeflateStream 类提供。

建议不要为 entryNameEncoding 其他 null 值指定值。

但是,对于无法正确支持条目名称或注释的 UTF-8 编码的 zip 存档工具和库的互操作性,可能需要这样做。

  • 如果未 entryNameEncoding 指定(== null):
    • 对于包含 ASCII 范围之外的字符的文件名或注释:
      语言编码标志 (EFS) 将在相应条目的本地文件标头的常规用途位标志中设置,UTF-8 (Encoding.UTF8) 将条目名称和注释编码为字节。
    • 对于不包含 ASCII 范围之外的字符的文件名或注释:
      语言编码标志(EFS)不会在相应条目的本地文件标头的常规用途位标志中设置,并且当前系统默认代码页(Encoding.Default)用于将条目名称和注释编码为字节。
  • 如果 entryNameEncoding 指定了 (!= null):
    • entryNameEncoding指定的项名称和注释始终用于将条目名称和注释编码为字节。
      仅当指定 entryNameEncoding 为 UTF-8 编码时,将设置每个条目的本地文件标头的常规用途位标志(EFS)中的语言编码标志。

UTF-8 以外的 Unicode 编码不能用于该 entryNameEncoding编码,否则会引发一个 ArgumentException

适用于