ZipFile.CreateFromDirectory 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建 zip 存档,该存档包含指定目录的文件和目录。
重载
CreateFromDirectory(String, Stream) |
在指定的流中创建 zip 存档,其中包含指定目录中的文件和目录。 |
CreateFromDirectory(String, String) |
创建 zip 存档,该存档包含指定目录的文件和目录。 |
CreateFromDirectory(String, Stream, CompressionLevel, Boolean) |
在指定流中创建 zip 存档,其中包含指定目录中的文件和目录,使用指定的压缩级别,并选择性地包含基目录。 |
CreateFromDirectory(String, String, CompressionLevel, Boolean) |
创建 zip 存档,该存档包括指定目录的文件和目录,使用指定压缩级别,以及可以选择包含基目录。 |
CreateFromDirectory(String, Stream, CompressionLevel, Boolean, Encoding) |
在包含指定目录中的文件和目录的指定流中创建 zip 存档,对条目名称使用指定的压缩级别和字符编码,并选择性地包含基目录。 |
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding) |
创建 zip 存档,该存档包括文件和指定目录的目录,使用指定压缩级别和条目名称的字符编码,以及可以选择包含基目录。 |
CreateFromDirectory(String, Stream)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
在指定的流中创建 zip 存档,其中包含指定目录中的文件和目录。
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination);
static member CreateFromDirectory : string * System.IO.Stream -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream)
参数
- sourceDirectoryName
- String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- destination
- Stream
要存储 zip 存档的流。
例外
sourceDirectoryName
或 destination
为 null
。
在 sourceDirectoryName
指定的路径中,文件名或两者都超过了系统定义的最大长度。
sourceDirectoryName
无效或不存在(例如,在未映射的驱动器上)。
sourceDirectoryName
包含无效格式。
注解
文件系统中的目录结构保留在存档中。 如果目录为空,则会创建一个空存档。 此方法重载不包括存档中的基目录,并且不允许指定压缩级别。 如果要包含基目录或指定压缩级别,请 CreateFromDirectory(String, Stream, CompressionLevel, Boolean) 调用 方法重载。 如果目录中的文件无法添加到存档中,则存档不完整且无效,并且 方法将 IOException 引发异常。
适用于
CreateFromDirectory(String, String)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
创建 zip 存档,该存档包含指定目录的文件和目录。
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName);
static member CreateFromDirectory : string * string -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String)
参数
- sourceDirectoryName
- String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- destinationArchiveFileName
- String
要生成的存档路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
例外
sourceDirectoryName
或 destinationArchiveFileName
是 Empty,仅包含空格,或包含至少一个无效字符。
sourceDirectoryName
或 destinationArchiveFileName
为 null
。
在 sourceDirectoryName
或 destinationArchiveFileName
内,指定的路径、文件名或者两者都超出了系统定义的最大长度。
sourceDirectoryName
无效或不存在(例如,在未映射的驱动器上)。
destinationArchiveFileName
指定目录。
- 或 -
调用方不具有访问在 sourceDirectoryName
中指定的目录或在 destinationArchiveFileName
中指定的文件的所需权限。
示例
此示例演示如何使用 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);
}
}
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
注解
文件系统中的目录结构保留在存档中。 如果目录为空,则会创建一个空存档。 此方法重载不包括存档中的基目录,并且不允许指定压缩级别。 如果要包含基目录或指定压缩级别,请 CreateFromDirectory(String, String, CompressionLevel, Boolean) 调用 方法重载。
如果存档已存在, IOException 则会引发异常。 如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。
如果目录中的文件无法添加到存档中,则存档不完整且无效,并且 方法将 IOException 引发异常。
适用于
CreateFromDirectory(String, Stream, CompressionLevel, Boolean)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
在指定流中创建 zip 存档,其中包含指定目录中的文件和目录,使用指定的压缩级别,并选择性地包含基目录。
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)
参数
- sourceDirectoryName
- String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- destination
- Stream
要存储 zip 存档的流。
- compressionLevel
- CompressionLevel
指示创建项时是否强调速度或压缩有效性的枚举值之一。
- includeBaseDirectory
- Boolean
包括从在存档的根的 sourceDirectoryName
的目录名称,则为 true
;仅包含目录中的内容,则为 false
。
例外
sourceDirectoryName
或 destination
为 null
。
在 sourceDirectoryName
指定的路径中,文件名或两者都超过了系统定义的最大长度。
sourceDirectoryName
无效或不存在(例如,在未映射的驱动器上)。
sourceDirectoryName
包含无效格式。
compressionLevel
不是有效的 CompressionLevel 值。
注解
文件系统中的目录结构保留在存档中。 如果目录为空,则会创建一个空存档。 使用此方法重载指定压缩级别以及是否在存档中包含基目录。 如果目录中的文件无法添加到存档中,则存档不完整且无效,并且 方法将 IOException 引发异常。
适用于
CreateFromDirectory(String, String, CompressionLevel, Boolean)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
创建 zip 存档,该存档包括指定目录的文件和目录,使用指定压缩级别,以及可以选择包含基目录。
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean)
参数
- sourceDirectoryName
- String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- destinationArchiveFileName
- String
要生成的存档路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- compressionLevel
- CompressionLevel
指示创建项时是否强调速度或压缩有效性的枚举值之一。
- includeBaseDirectory
- Boolean
包括从在存档的根的 sourceDirectoryName
的目录名称,则为 true
;仅包含目录中的内容,则为 false
。
例外
sourceDirectoryName
或 destinationArchiveFileName
是 Empty,仅包含空格,或包含至少一个无效字符。
sourceDirectoryName
或 destinationArchiveFileName
为 null
。
在 sourceDirectoryName
或 destinationArchiveFileName
内,指定的路径、文件名或者两者都超出了系统定义的最大长度。
sourceDirectoryName
无效或不存在(例如,在未映射的驱动器上)。
destinationArchiveFileName
指定目录。
- 或 -
调用方不具有访问在 sourceDirectoryName
中指定的目录或在 destinationArchiveFileName
中指定的文件的所需权限。
示例
此示例演示如何使用 ZipFile 类创建和提取 zip 存档。 它将文件夹的内容压缩到 zip 存档中,然后将该内容提取到新文件夹。 压缩存档时,将包含基目录,并设置压缩级别以强调操作速度与效率。 若要使用 ZipFile 类,必须在项目中引用 System.IO.Compression.FileSystem
程序集。
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true);
ZipFile.ExtractToDirectory(zipPath, extractPath);
}
}
}
open System.IO.Compression
let startPath = @"c:\example\start"
let zipPath = @"c:\example\result.zip"
let extractPath = @"c:\example\extract"
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, true)
ZipFile.ExtractToDirectory(zipPath, extractPath)
Imports System.IO
Imports System.IO.Compression
Module Module1
Sub Main()
Dim startPath As String = "c:\example\start"
Dim zipPath As String = "c:\example\result.zip"
Dim extractPath As String = "c:\example\extract"
ZipFile.CreateFromDirectory(startPath, zipPath, CompressionLevel.Fastest, True)
ZipFile.ExtractToDirectory(zipPath, extractPath)
End Sub
End Module
注解
文件系统中的目录结构保留在存档中。 如果目录为空,则会创建一个空存档。 使用此方法重载可指定压缩级别以及是否在存档中包含基目录。
如果存档已存在, IOException 则会引发异常。 如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。
如果目录中的文件无法添加到存档中,则存档将不完整且无效,并且 方法将 IOException 引发异常。
适用于
CreateFromDirectory(String, Stream, CompressionLevel, Boolean, Encoding)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
在包含指定目录中的文件和目录的指定流中创建 zip 存档,对条目名称使用指定的压缩级别和字符编码,并选择性地包含基目录。
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::IO::Stream ^ destination, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, System.IO.Stream destination, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * System.IO.Stream * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destination As Stream, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)
参数
- sourceDirectoryName
- String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- destination
- Stream
要存储 zip 存档的流。
- compressionLevel
- CompressionLevel
指示创建项时是否强调速度或压缩有效性的枚举值之一。
- includeBaseDirectory
- Boolean
包括从在存档的根的 sourceDirectoryName
的目录名称,则为 true
;仅包含目录中的内容,则为 false
。
- entryNameEncoding
- Encoding
在存档中读取或写入项名时使用的编码。 仅当需要针对具有不支持条目名称的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码时,为此参数指定值。
例外
sourceDirectoryName
或 destination
为 null
。
在 sourceDirectoryName
指定的路径中,文件名或两者都超过了系统定义的最大长度。
sourceDirectoryName
无效或不存在(例如,在未映射的驱动器上)。
sourceDirectoryName
包含无效格式。
compressionLevel
不是有效的 CompressionLevel 值。
注解
文件系统中的目录结构保留在存档中。 如果目录为空,则会创建一个空存档。 使用此方法重载可指定压缩级别和字符编码,以及是否在存档中包含基目录。 如果目录中的文件无法添加到存档中,则存档将不完整且无效,并且 方法将 IOException 引发异常。
适用于
CreateFromDirectory(String, String, CompressionLevel, Boolean, Encoding)
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
- Source:
- ZipFile.Create.cs
创建 zip 存档,该存档包括文件和指定目录的目录,使用指定压缩级别和条目名称的字符编码,以及可以选择包含基目录。
public:
static void CreateFromDirectory(System::String ^ sourceDirectoryName, System::String ^ destinationArchiveFileName, System::IO::Compression::CompressionLevel compressionLevel, bool includeBaseDirectory, System::Text::Encoding ^ entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding entryNameEncoding);
public static void CreateFromDirectory (string sourceDirectoryName, string destinationArchiveFileName, System.IO.Compression.CompressionLevel compressionLevel, bool includeBaseDirectory, System.Text.Encoding? entryNameEncoding);
static member CreateFromDirectory : string * string * System.IO.Compression.CompressionLevel * bool * System.Text.Encoding -> unit
Public Shared Sub CreateFromDirectory (sourceDirectoryName As String, destinationArchiveFileName As String, compressionLevel As CompressionLevel, includeBaseDirectory As Boolean, entryNameEncoding As Encoding)
参数
- sourceDirectoryName
- String
到要存档的目录的路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- destinationArchiveFileName
- String
要生成的存档路径,指定为相对路径或绝对路径。 相对路径被解释为相对于当前工作目录。
- compressionLevel
- CompressionLevel
指示创建项时是否强调速度或压缩有效性的枚举值之一。
- includeBaseDirectory
- Boolean
包括从在存档的根的 sourceDirectoryName
的目录名称,则为 true
;仅包含目录中的内容,则为 false
。
- entryNameEncoding
- Encoding
在存档中读取或写入项名时使用的编码。 仅当需要针对具有不支持条目名称的 UTF-8 编码的 zip 归档工具和库的互操作性进行编码时,为此参数指定值。
例外
sourceDirectoryName
或 destinationArchiveFileName
是 Empty,仅包含空格,或包含至少一个无效字符。
- 或 -
entryNameEncoding
设置为不同于 UTF-8 的 Unicode 编码。
sourceDirectoryName
或 destinationArchiveFileName
为 null
。
在 sourceDirectoryName
或 destinationArchiveFileName
内,指定的路径、文件名或者两者都超出了系统定义的最大长度。
sourceDirectoryName
无效或不存在(例如,在未映射的驱动器上)。
destinationArchiveFileName
指定目录。
- 或 -
调用方不具有访问在 sourceDirectoryName
中指定的目录或在 destinationArchiveFileName
中指定的文件的所需权限。
注解
文件系统中的目录结构保留在存档中。 如果目录为空,则会创建一个空存档。 使用此方法重载可指定压缩级别和字符编码,以及是否在存档中包含基目录。
如果存档已存在, IOException 则会引发异常。 如果存档中已存在具有指定名称的条目,则会创建具有相同名称的第二个条目。
如果目录中的文件无法添加到存档中,则存档将不完整且无效,并且 方法将 IOException 引发异常。
如果 entryNameEncoding
设置为以外的 null
值,则使用指定的编码对条目名称进行编码。 如果指定的编码为 UTF-8,则为每个条目设置本地文件头) 的常规用途位标志中的语言编码标志 (,
如果 entryNameEncoding
设置为 null
,则根据以下规则对条目名称进行编码:
对于包含 ASCII 范围外字符的条目名称,设置语言编码标志,使用 UTF-8 对条目名称进行编码。
对于仅包含 ASCII 字符的条目名称,将设置语言编码标志,并使用当前系统默认代码页对条目名称进行编码。