語言

ZipFileExtensions.ExtractToDirectory 方法

定義

將壓縮檔中的所有檔案解壓到檔案系統上的目錄。

多載

名稱 Description
ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)
ExtractToDirectory(ZipArchive, String, Boolean)

將壓縮檔中的所有檔案解壓到檔案系統上的目錄。

ExtractToDirectory(ZipArchive, String)

將壓縮壓縮檔中的所有檔案解壓到檔案系統的目錄中。

ExtractToDirectory(ZipArchive, String, ZipExtractionOptions)

來源:
ZipFileExtensions.ZipArchive.Extract.cs
public:
[System::Runtime::CompilerServices::Extension]
 static void ExtractToDirectory(System::IO::Compression::ZipArchive ^ source, System::String ^ destinationDirectoryName, System::IO::Compression::ZipExtractionOptions ^ options);
public static void ExtractToDirectory(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options);
static member ExtractToDirectory : System.IO.Compression.ZipArchive * string * System.IO.Compression.ZipExtractionOptions -> unit
<Extension()>
Public Sub ExtractToDirectory (source As ZipArchive, destinationDirectoryName As String, options As ZipExtractionOptions)

參數

source
ZipArchive
destinationDirectoryName
String

指向存放擷取檔案目錄的路徑。 目錄本身就可能存在。 缺失目錄會在擷取條目時根據需要建立。

備註

Warning

此方法不得用於解壓不受信任的檔案。 它不強制執行任何大小限制、條目數量限制或其他安全解壓不可信檔案所需的政策。 欲了解更多如何安全解壓來自不可信來源的壓縮檔,請參閱 使用壓縮檔與 tar 壓縮檔的最佳實務。

由指定的 destinationDirectoryName 目錄可能已經存在。 此方法在萃取條目時會建立目的目錄、其缺失的父目錄及子目錄。 如果壓縮檔是空的,這個方法不會建立目的目錄。

每個解壓檔案的相對路徑 destinationDirectoryName 與其來源條目到壓縮檔根節點的路徑相同。

參數 destinationDirectoryName 接受相對路徑與絕對路徑。 相對路徑會被解讀為相對於目前工作目錄的相對於。

若解壓過程中發生錯誤,該壓縮檔仍維持部分解壓狀態。

設定 OverwriteFiles 為 以 true 覆蓋現有檔案。 預設值為 false,若已有檔案存在,則會拋出 。IOException

用來 Password 提供加密條目的密碼。

EntryNameEncoding 不被這種過載使用。 條目名稱與註解會依開啟壓縮檔時 source 指定的編碼來解碼。

檔案庫中的符號連結不會被重新建立為符號連結。 如果 destinationDirectoryName 其父目錄中或任何一個已存在的連接或符號連結,則會跟隨該連結,並寫入最終目標資料夾。

適用於

ExtractToDirectory(ZipArchive, String, Boolean)

來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs

將壓縮檔中的所有檔案解壓到檔案系統上的目錄。

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 否則,

例外狀況

destinationDirectoryName 是零長度字串,僅包含空白,或包含一個或多個無效字元,定義如下 InvalidPathChars。

destinationDirectoryName 是 null。

指定的路徑、檔名或兩者都超過系統定義的最大長度。

指定的路徑無效(例如,它位於未對應的磁碟驅動器上)。

a ZipArchiveEntry 的名稱長度為零,僅包含空白,或包含一個或多個無效字元,定義如下 InvalidPathChars。

-或-

解壓 會 ZipArchiveEntry 產生一個位於外部 destinationDirectoryName 的目的檔案(例如,若條目名稱包含父目錄存取者)。

-或-

A ZipArchiveEntry 與已從同一壓縮庫中解壓的條目名稱相同。

來電者沒有所需的權限。

destinationDirectoryName 格式無效。

ZipArchiveEntry A未被找到或被腐敗。

-或-

A ZipArchiveEntry 是用不支援的壓縮方式壓縮的。

備註

Warning

此方法不得用於解壓不受信任的檔案。 它不強制執行任何大小限制、條目數量限制或其他安全解壓不可信檔案所需的政策。 欲了解更多如何安全解壓來自不可信來源的壓縮檔,請參閱 使用壓縮檔與 tar 壓縮檔的最佳實務。

由指定的 destinationDirectoryName 目錄可能已經存在。 此方法在萃取條目時會建立目的目錄、其缺失的父目錄及子目錄。 如果壓縮檔是空的,這個方法不會建立目的目錄。

若解壓時發生錯誤,該壓縮檔將保持部分解壓狀態。

每個項目的解壓路徑與該條目到檔案根目錄的路徑 destinationDirectoryName 相同。

若要歸檔的檔案最後修改時間無效,則使用Zip時間戳格式中可表示的第一個日期與時間(1980年1月1日午夜)。

適用於

ExtractToDirectory(ZipArchive, String)

來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs
來源:
ZipFileExtensions.ZipArchive.Extract.cs

將壓縮壓縮檔中的所有檔案解壓到檔案系統的目錄中。

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 包含無效格式。

無法找到檔案或檔案遺失。

-或-

壓縮檔案的條目是透過不支援的壓縮方法進行的。

範例

以下範例說明如何從現有檔案建立壓縮壓縮檔的新條目,並將該壓縮檔解壓到新目錄。

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

備註

Warning

此方法不得用於解壓不受信任的檔案。 它不強制執行任何大小限制、條目數量限制或其他安全解壓不可信檔案所需的政策。 欲了解更多如何安全解壓來自不可信來源的壓縮檔,請參閱 使用壓縮檔與 tar 壓縮檔的最佳實務。

由指定的 destinationDirectoryName 目錄可能已經存在。 此方法在萃取條目時會建立目的目錄、其缺失的父目錄及子目錄。 如果壓縮檔是空的,這個方法不會建立目的目錄。

若解壓過程中發生錯誤,該壓縮檔仍維持部分解壓狀態。 每個解壓檔案對指定的 destinationDirectoryName 目錄的相對路徑,與其來源條目到壓縮檔根節點的路徑相同。

適用於