語言

ZipFileExtensions.ExtractToDirectoryAsync 方法

定義

將壓縮檔中的所有檔案解壓到檔案系統上的目錄。 指定的目錄可能已經存在。

多載

名稱 Description
ExtractToDirectoryAsync(ZipArchive, String, CancellationToken)

非同步地將壓縮檔中的所有檔案解壓到檔案系統上的目錄。 指定的目錄可能已經存在。

ExtractToDirectoryAsync(ZipArchive, String, Boolean, CancellationToken)

將壓縮檔中的所有檔案解壓到檔案系統上的目錄。 指定的目錄可能已經存在。

ExtractToDirectoryAsync(ZipArchive, String, ZipExtractionOptions, CancellationToken)

ExtractToDirectoryAsync(ZipArchive, String, CancellationToken)

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

非同步地將壓縮檔中的所有檔案解壓到檔案系統上的目錄。 指定的目錄可能已經存在。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Compression.ZipArchive * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task
<Extension()>
Public Function ExtractToDirectoryAsync (source As ZipArchive, destinationDirectoryName As String, Optional cancellationToken As CancellationToken = Nothing) As Task

參數

source
ZipArchive

zip 壓縮檔用來解壓檔案。

destinationDirectoryName
String

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

cancellationToken
CancellationToken

取消令牌用來監控取消申請。

傳回

例外狀況

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

destinationDirectoryName 是 null。

指定的路徑、檔名或兩者都超過系統定義的最大長度。 例如,在基於 Windows 的平台上,路徑必須少於 248 個字元,檔案名稱必須少於 260 個字元。

指定的路徑無效(例如,它位於未映射的硬碟上)。

歸檔項目名稱為零長度,僅包含空白,或包含一個或多個無效字元,依 InvalidPathChars 定義。

-或-

解壓壓縮檔條目會導致目標檔案位於外部 destinationDirectoryName (例如,若條目名稱包含父目錄存取者)。

-或-

一個檔案庫的條目名稱與已從同一檔案庫提取的條目相同。

來電者沒有所需的權限。

destinationDirectoryName 格式無效。

找不到一個檔案記錄或已損壞。

-或-

壓縮檔條目使用不支援的壓縮方法。

非同步操作被取消。

備註

Warning

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

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

路徑可指定相對或絕對路徑資訊。 相對路徑資訊會被解讀為相對於目前工作目錄的相對於。

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

每個項目的解壓路徑與該條目到檔案根目錄的路徑 destinationDirectoryName 相同。 若要歸檔的檔案最後修改時間無效,則會使用第一個可以 Zip 時間戳格式表示的日期時間(1980 年 1 月 1 日午夜)。

適用於

ExtractToDirectoryAsync(ZipArchive, String, Boolean, CancellationToken)

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

將壓縮檔中的所有檔案解壓到檔案系統上的目錄。 指定的目錄可能已經存在。

public static System.Threading.Tasks.Task ExtractToDirectoryAsync(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, bool overwriteFiles, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Compression.ZipArchive * string * bool * System.Threading.CancellationToken -> System.Threading.Tasks.Task
<Extension()>
Public Function ExtractToDirectoryAsync (source As ZipArchive, destinationDirectoryName As String, overwriteFiles As Boolean, Optional cancellationToken As CancellationToken = Nothing) As Task

參數

source
ZipArchive

zip 壓縮檔用來解壓檔案。

destinationDirectoryName
String

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

overwriteFiles
Boolean

true 覆寫檔案; false 否則,

cancellationToken
CancellationToken

取消令牌用來監控取消申請。

傳回

例外狀況

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

此方法在擷取條目時會根據需要產生缺失目錄。

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

每個項目的解壓路徑與該條目到檔案根目錄的路徑 destinationDirectoryName 相同。 若要歸檔的檔案最後修改時間無效,則會使用第一個可以 Zip 時間戳格式表示的日期時間(1980 年 1 月 1 日午夜)。

destinationDirectoryName 是 null。

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

例如,在基於 Windows 的平台上,路徑必須少於 248 個字元,檔案名稱必須少於 260 個字元。

指定的路徑無效(例如,它位於未映射的硬碟上)。

歸檔項目名稱為零長度,僅包含空白,或包含一個或多個無效字元,依 InvalidPathChars 定義。

-或-

解壓壓縮檔條目會導致目標檔案位於外部 destinationDirectoryName (例如,若條目名稱包含父目錄存取者)。

-或-

一個檔案庫的條目名稱與已從同一檔案庫提取的條目相同。

來電者沒有所需的權限。

destinationDirectoryName 格式無效。

未找到檔案記錄或已損壞。

-或-

壓縮檔條目使用不支援的壓縮方法。

備註

Warning

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

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

路徑可指定相對或絕對路徑資訊。 相對路徑資訊會被解讀為相對於目前工作目錄的相對於。

適用於

ExtractToDirectoryAsync(ZipArchive, String, ZipExtractionOptions, CancellationToken)

來源:
ZipFileExtensions.ZipArchive.Extract.Async.cs
public static System.Threading.Tasks.Task ExtractToDirectoryAsync(this System.IO.Compression.ZipArchive source, string destinationDirectoryName, System.IO.Compression.ZipExtractionOptions options, System.Threading.CancellationToken cancellationToken = default);
static member ExtractToDirectoryAsync : System.IO.Compression.ZipArchive * string * System.IO.Compression.ZipExtractionOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task
<Extension()>
Public Function ExtractToDirectoryAsync (source As ZipArchive, destinationDirectoryName As String, options As ZipExtractionOptions, Optional cancellationToken As CancellationToken = Nothing) As Task

參數

source
ZipArchive
destinationDirectoryName
String

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

cancellationToken
CancellationToken

傳回

備註

Warning

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

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

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

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

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

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

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

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

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

非同步擷取期間發生的異常會儲存在回傳的任務中,並在等待任務時拋出。

適用於