ZipFileExtensions.ExtractToDirectory 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
ExtractToDirectory(ZipArchive, String) |
将 zip 存档中的所有文件都解压缩到文件系统的一个目录下。 |
ExtractToDirectory(ZipArchive, String, Boolean) |
将存档中的所有文件都解压缩到文件系统的一个目录下。 |
ExtractToDirectory(ZipArchive, String)
将 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
要在其中放置解压缩的文件的目录路径。 可以指定相对或绝对路径。 相对路径被解释为相对于当前工作目录。
例外
destinationDirectoryName
为 Empty,仅包含空格,或者包含至少一个无效字符。
destinationDirectoryName
为 null
。
指定路径的长度超出系统定义的最大长度。
指定的路径无效(例如,它位于未映射的驱动器上)。
一个在存档中的输入名称是 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)
将存档中的所有文件都解压缩到文件系统的一个目录下。
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
否则。
例外
destinationArchiveFileName
是一个长度为零的字符串,仅包含空格,或包含一个或多个由 InvalidPathChars 定义的无效字符。
destinationArchiveFileName
为 null
。
指定的路径和/或文件名超过了系统定义的最大长度。
指定的路径无效(例如,它位于未映射的驱动器上)。
ZipArchiveEntry 的名称的长度为零,仅包含空格,或包含一个或多个由 InvalidPathChars 定义的无效字符。
- 或 -
解压缩 ZipArchiveEntry 会导致目标文件位于 destinationArchiveFileName
之外(例如,如果项名称包含父目录访问器)。
- 或 -
ZipArchiveEntry 与一个已从同一存档中解压缩的项同名。
调用方没有所要求的权限。
destinationArchiveFileName
的格式无效。
注解
指定的目录可能已存在。 如有必要,此方法会创建指定的目录和所有子目录。
如果在提取存档时出错,存档将保持部分提取状态。
提取每个条目,使提取的文件具有与条目对存档根目录相同的相对路径 destinationDirectoryName
。
如果要存档的文件的上次修改时间无效,则使用 1980 年 1 月 1 日午夜 (zip 时间戳格式表示的第一个日期和时间) 。