ZipFile.CreateFromDirectoryAsync 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
| 名称 | 说明 |
|---|---|
| CreateFromDirectoryAsync(String, Stream, CancellationToken) |
在指定流中异步创建 zip 存档,其中包含指定目录中的文件和目录。 |
| CreateFromDirectoryAsync(String, String, CancellationToken) |
在路径 |
| CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, CancellationToken) |
使用指定的压缩级别(可选)以异步方式在指定流中创建 zip 存档,该流包含指定目录中的文件和目录(可选)。 |
| CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, CancellationToken) |
在路径 |
| CreateFromDirectoryAsync(String, Stream, CompressionLevel, Boolean, Encoding, CancellationToken) |
使用指定压缩级别和条目名称的字符编码(可选)在指定流中创建包含指定目录中的文件和目录的 zip 存档,并选择性地包括基目录。 |
| CreateFromDirectoryAsync(String, String, CompressionLevel, Boolean, Encoding, CancellationToken) |
在路径 |
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
用于监视取消请求的取消令牌。
返回
例外
sourceDirectoryName 或 destination 为 null.
在 中 sourceDirectoryName,指定的路径、文件名或两者都超过了系统定义的最大长度。
sourceDirectoryName 无效或不存在(例如,它位于未映射的驱动器上)。
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
用于监视取消请求的取消令牌。
返回
例外
sourceDirectoryName 或 destinationArchiveFileName 为零长度字符串,仅包含空格,或包含一个或多个无效字符,如定义 InvalidPathChars。
sourceDirectoryName 或 destinationArchiveFileName 为 null.
sourceDirectoryName或者destinationArchiveFileName,指定的路径、文件名或两者都超过了系统定义的最大长度。
例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。
在 sourceDirectoryName 未映射的驱动器上指定或 destinationArchiveFileName 无效的路径(例如,它位于未映射的驱动器上)。
-或-
指定的 sourceDirectoryName 目录不存在。
sourceDirectoryName 或 destinationArchiveFileName 格式无效。
异步作被取消。
注解
目录结构保留在存档中,对要存档的文件执行递归搜索。 存档不得存在。 如果目录为空,则会创建空存档。 如果目录中的文件无法添加到存档,存档将不完整且无效,并且该方法将引发异常。 此方法不包括存档中的基目录。
如果在将文件添加到存档时遇到错误,此方法将停止添加文件,并使存档处于无效状态。 允许路径指定相对路径或绝对路径信息。 相对路径信息解释为相对于当前工作目录。 如果存档中的文件在上次写入时间字段中的数据不是有效的 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 如果包含存档根目录中的目录名称 sourceDirectoryName , false 则仅包含目录的内容。
- cancellationToken
- CancellationToken
用于监视取消请求的令牌。
返回
例外
sourceDirectoryName 或 destination 为 null.
在 中 sourceDirectoryName,指定的路径、文件名或两者都超过了系统定义的最大长度。
sourceDirectoryName 无效或不存在(例如,它位于未映射的驱动器上)。
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
用于监视取消请求的取消令牌。
返回
例外
sourceDirectoryName 或 destinationArchiveFileName 为零长度字符串,仅包含空格,或包含一个或多个无效字符,如定义 InvalidPathChars。
sourceDirectoryName 或 destinationArchiveFileName 为 null.
sourceDirectoryName或者destinationArchiveFileName,指定的路径、文件名或两者都超过了系统定义的最大长度。
例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。
在 sourceDirectoryName 未映射的驱动器上指定或 destinationArchiveFileName 无效的路径(例如,它位于未映射的驱动器上)。
-或-
指定的 sourceDirectoryName 目录不存在。
sourceDirectoryName 或 destinationArchiveFileName 格式无效。
异步作被取消。
注解
目录结构保留在存档中,对要存档的文件执行递归搜索。 存档不得存在。 如果目录为空,将创建空存档。
如果目录中的文件无法添加到存档,存档将不完整且无效,并且该方法将引发异常。 此方法可以选择在存档中包含基目录。
如果在将文件添加到存档时遇到错误,此方法将停止添加文件并将存档保留为无效状态。 允许路径指定相对路径或绝对路径信息。 相对路径信息解释为相对于当前工作目录。 如果存档中的文件在上次写入时间字段中的数据不是有效的 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 如果包含存档根目录中的目录名称 sourceDirectoryName , false 则仅包含目录的内容。
- entryNameEncoding
- Encoding
在此存档中读取或写入条目名称时要使用的编码。 仅当需要编码才能与不支持条目名称或注释的 UTF-8 编码的 zip 存档工具和库的互作性时,才为此参数指定值。
- cancellationToken
- CancellationToken
用于监视取消请求的取消令牌。
返回
例外
sourceDirectoryName 或 destination 为 null.
在 中 sourceDirectoryName,指定的路径、文件名或两者都超过了系统定义的最大长度。
sourceDirectoryName 无效或不存在(例如,它位于未映射的驱动器上)。
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
用于监视取消请求的取消令牌。
返回
例外
sourceDirectoryName 或 destinationArchiveFileName 为零长度字符串,仅包含空格,或包含一个或多个无效字符,如定义 InvalidPathChars。
sourceDirectoryName 或 destinationArchiveFileName 为 null.
sourceDirectoryName或者destinationArchiveFileName,指定的路径、文件名或两者都超过了系统定义的最大长度。
例如,在基于 Windows 的平台上,路径必须小于 248 个字符,文件名必须小于 260 个字符。
在 sourceDirectoryName 未映射的驱动器上指定或 destinationArchiveFileName 无效的路径(例如,它位于未映射的驱动器上)。
-或-
指定的 sourceDirectoryName 目录不存在。
sourceDirectoryName 或 destinationArchiveFileName 格式无效。
异步作被取消。
注解
目录结构保留在存档中,对要存档的文件执行递归搜索。 存档不得存在。 如果目录为空,将创建空存档。
如果目录中的文件无法添加到存档,存档将不完整且无效,并且该方法将引发异常。 此方法可以选择在存档中包含基目录。
如果在将文件添加到存档时遇到错误,此方法将停止添加文件并将存档保留为无效状态。 允许路径指定相对路径或绝对路径信息。 相对路径信息解释为相对于当前工作目录。 如果存档中的文件在上次写入时间字段中的数据不是有效的 zip 时间戳,则 1980 年 1 月 1 日午夜的指示器值将用于文件的上次修改时间。如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。 由于未 CompressionLevel 指定,因此将使用基础压缩算法的实现提供的默认; ZipArchive 不会施加自己的默认值。
(目前,基础压缩算法由 DeflateStream 类提供。
建议不要为 entryNameEncoding 其他 null 值指定值。
但是,对于无法正确支持条目名称或注释的 UTF-8 编码的 zip 存档工具和库的互操作性,可能需要这样做。
- 如果未
entryNameEncoding指定(== null):- 对于包含 ASCII 范围之外的字符的文件名或注释:
语言编码标志 (EFS) 将在相应条目的本地文件标头的常规用途位标志中设置,UTF-8 (Encoding.UTF8) 将条目名称和注释编码为字节。 - 对于不包含 ASCII 范围之外的字符的文件名或注释:
语言编码标志(EFS)不会在相应条目的本地文件标头的常规用途位标志中设置,并且当前系统默认代码页(Encoding.Default)用于将条目名称和注释编码为字节。
- 对于包含 ASCII 范围之外的字符的文件名或注释:
- 如果
entryNameEncoding指定了 (!= null):-
entryNameEncoding指定的项名称和注释始终用于将条目名称和注释编码为字节。
仅当指定entryNameEncoding为 UTF-8 编码时,将设置每个条目的本地文件标头的常规用途位标志(EFS)中的语言编码标志。
-
UTF-8 以外的 Unicode 编码不能用于该 entryNameEncoding编码,否则会引发一个 ArgumentException 。