共用方式為


ZipFile.ExtractToDirectory 方法

定義

將指定之 zip 封存中的所有檔案解壓縮到檔案系統上的目錄。

多載

ExtractToDirectory(String, String, Encoding, Boolean)

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

ExtractToDirectory(Stream, String, Encoding, Boolean)

從儲存在指定數據流的 zip 封存中擷取所有檔案,並將其放在文件系統上的指定目的地目錄中、針對項目名稱使用指定的字元編碼,並選擇性地允許選擇是否應該覆寫目的地目錄中的檔案。

ExtractToDirectory(String, String, Encoding)

將指定之 zip 封存中的所有檔案解壓縮到檔案系統上的目錄,並對項目名稱使用指定的字元編碼方式。

ExtractToDirectory(String, String, Boolean)

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

ExtractToDirectory(Stream, String, Boolean)

從儲存在指定數據流的 zip 封存檔中擷取所有檔案,並將其放在文件系統上的指定目的地目錄中,並選擇性地允許選擇是否應該覆寫目的地目錄中的檔案。

ExtractToDirectory(String, String)

將指定之 zip 封存中的所有檔案解壓縮到檔案系統上的目錄。

ExtractToDirectory(Stream, String)

從儲存在指定數據流的 zip 封存中擷取所有檔案,並將其放在檔案系統上的指定目的地目錄中。

ExtractToDirectory(Stream, String, Encoding)

從儲存在指定數據流的 zip 封存檔中擷取所有檔案,並將其放在檔案系統上的指定目的地目錄中,並使用指定的字元編碼進行專案名稱。

ExtractToDirectory(String, String, Encoding, Boolean)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

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

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : string * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

參數

sourceArchiveFileName
String

檔案系統上要解壓縮的封存路徑。

destinationDirectoryName
String

檔案系統上目的地目錄的路徑。

entryNameEncoding
Encoding

在此 ZipArchive中讀取項目名稱時要使用的編碼方式。

overwriteFiles
Boolean

若要覆寫檔案,則為 true;否則為 false

例外狀況

sourceArchiveFileNamedestinationDirectoryName 為零長度字串、只包含空格,或包含一或多個如 InvalidPathChars 所定義的無效字元。

-或-

entryNameEncoding 會設定為 UTF-8 以外的 Unicode 編碼方式。

sourceArchiveFileNamedestinationDirectoryNamenull

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

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

overwriteFilesfalse ,且要擷取的封存專案與 中 destinationDirectoryName已經存在的檔案同名。

-或-

發生 I/O 錯誤。

-或-

ZipArchiveEntry 名稱為零長度、只包含空格,或包含一或多個如 InvalidPathChars 所定義的無效字元。

-或-

解壓縮 ZipArchiveEntry 會導致檔案目的地位於目的地目錄外部 (例如,因為上層目錄存取子所致)。

-或-

ZipArchiveEntry 與相同封存中已解壓縮的項目同名。

呼叫端沒有必要的權限。

sourceArchiveFileNamedestinationDirectoryName 格式無效。

找不到 sourceArchiveFileName

sourceArchiveFileName 指定的封存不是有效 ZipArchive

-或-

找不到封存項目,或是其已損毀。

-或-

您使用不受支援的壓縮方法壓縮封存項目。

備註

如果在擷取封存時發生錯誤,封存會維持部分解壓縮狀態。

系統會擷取每個專案,讓擷取的檔案具有與項目必須封存相同的相對路徑 destinationDirectoryName

sourceArchiveFileNamedestinationDirectoryName 參數同時接受相對路徑和絕對路徑。 相對路徑會解譯為與目前的工作目錄相對。

如果要封存的檔案上次修改時間無效,則會使用 198) 0 年 1 月 1 日午夜 (Zip 時間戳格式表示的第一個日期和時間。

適用於

ExtractToDirectory(Stream, String, Encoding, Boolean)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

從儲存在指定數據流的 zip 封存中擷取所有檔案,並將其放在文件系統上的指定目的地目錄中、針對項目名稱使用指定的字元編碼,並選擇性地允許選擇是否應該覆寫目的地目錄中的檔案。

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding, overwriteFiles As Boolean)

參數

source
Stream

要從中擷取 zip 封存的數據流。

destinationDirectoryName
String

要在其中放置解壓縮檔案的目錄路徑(指定為相對或絕對路徑)。 相對路徑會解譯為與目前的工作目錄相對。

entryNameEncoding
Encoding

在此封存中讀取或寫入項目名稱時要使用的編碼方式。 只有當需要編碼以與 Zip 封存工具和程式庫互通,且這類工具和程式庫不支援項目名稱使用 UTF-8 編碼時,指定此參數的值。

overwriteFiles
Boolean

若要覆寫檔案,則為 true;否則為 false

例外狀況

destinationDirectoryName> 為 Empty,只包含空格符,或至少包含一個無效的字元。

-或-

entryNameEncoding 會設定為 UTF-8 以外的 Unicode 編碼方式。

destinationDirectoryNamesourcenull

中的 destinationDirectoryName 指定路徑超過系統定義的最大長度。

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

封存檔中的項目名稱是Empty,只包含空白字元,或包含至少一個無效的字元。

-或-

解壓縮封存項目會建立 destinationDirectoryName 所指定目錄外的檔案。 (例如,如果項目名稱包含父目錄存取子,這就可能發生)。

-或-

overwriteFilesfalse ,且要擷取的封存專案與已擷取或存在於的專案 destinationDirectoryName同名。

呼叫端不具有存取封存或目的地目錄的權限。

destinationDirectoryName 包含無效的格式。

數據流中包含的 source 封存不是有效的 zip 封存。

-或-

找不到封存項目,或是其已損毀。

-或-

封存項目是使用不支援的壓縮方法進行壓縮。

備註

這個方法會建立指定的目錄和所有子目錄。 目的地目錄不能已經存在。 在擷取之前,會擲回與驗證 包含在參數中source之 zip 封存中的路徑destinationDirectoryName或檔案相關的例外狀況。 否則,如果在擷取期間發生錯誤,封存仍會部分解壓縮。 每個擷取的檔案都有與其來源專案所指定 destinationDirectoryName 目錄相同的相對路徑,且其來源項目必須具有封存的根目錄。 如果要封存的檔案上次修改時間無效,則會使用 198) 0 年 1 月 1 日午夜 (Zip 時間戳格式表示的第一個日期和時間。

適用於

ExtractToDirectory(String, String, Encoding)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

將指定之 zip 封存中的所有檔案解壓縮到檔案系統上的目錄,並對項目名稱使用指定的字元編碼方式。

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding entryNameEncoding);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : string * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, entryNameEncoding As Encoding)

參數

sourceArchiveFileName
String

要擷取之封存的路徑。

destinationDirectoryName
String

要在其中放置解壓縮檔案的目錄路徑(指定為相對或絕對路徑)。 相對路徑會解譯為與目前的工作目錄相對。

entryNameEncoding
Encoding

在此封存中讀取或寫入項目名稱時要使用的編碼方式。 只有當需要編碼以與 Zip 封存工具和程式庫互通,且這類工具和程式庫不支援項目名稱使用 UTF-8 編碼時,指定此參數的值。

例外狀況

destinationDirectoryNamesourceArchiveFileNameEmpty,只含有空白字元,或者含有至少一個無效字元。

-或-

entryNameEncoding 會設定為 UTF-8 以外的 Unicode 編碼方式。

destinationDirectoryNamesourceArchiveFileNamenull

destinationDirectoryNamesourceArchiveFileName 中指定的路徑超過系統定義的最大長度。

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

封存檔中的項目名稱是Empty,只包含空白字元,或包含至少一個無效的字元。

-或-

解壓縮封存項目會建立 destinationDirectoryName 所指定目錄外的檔案。 (例如,如果項目名稱包含父目錄存取子,這就可能發生)。

-或-

要擷取的封存專案與已擷取或存在於的專案 destinationDirectoryName同名。

呼叫端不具有存取封存或目的地目錄的權限。

destinationDirectoryNamesourceArchiveFileName 包含無效的格式。

找不到 sourceArchiveFileName

sourceArchiveFileName 指定的封存不是有效的 zip 封存。

-或-

找不到封存項目,或是其已損毀。

-或-

封存項目是使用不支援的壓縮方法進行壓縮。

備註

此方法會視需要建立指定的目錄和所有子目錄。 在擷取之前,會擲回與驗證 或 sourceArchiveFileName 參數中destinationDirectoryName路徑相關的例外狀況。 否則,如果在擷取期間發生錯誤,封存仍會部分解壓縮。 每個擷取的檔案都有與其來源專案所指定 destinationDirectoryName 目錄相同的相對路徑,且其來源項目必須具有封存的根目錄。

如果 entryNameEncoding 設定為 以外的 null值,則會根據下列規則將專案名稱譯碼:

  • 對於未設定本機檔案) 標頭之一般用途位旗標中語言編碼旗標 (的專案名稱,專案名稱會使用指定的編碼來譯碼。
  • 針對設定語言編碼旗標的專案,專案名稱會使用UTF-8來譯碼。

如果 entryNameEncoding 設定為 null,則會根據下列規則將專案名稱譯碼:

  • 對於未設定本機檔案標頭的一般用途位旗標 (語言編碼旗標的專案) ,使用目前的系統默認代碼頁來譯碼項目名稱。
  • 針對設定語言編碼旗標的專案,專案名稱會使用UTF-8來譯碼。

適用於

ExtractToDirectory(String, String, Boolean)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

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

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : string * string * bool -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String, overwriteFiles As Boolean)

參數

sourceArchiveFileName
String

檔案系統上要解壓縮的封存路徑。

destinationDirectoryName
String

檔案系統上目的地目錄的路徑。

overwriteFiles
Boolean

若要覆寫檔案,則為 true;否則為 false

例外狀況

sourceArchiveFileNamedestinationDirectoryName 為零長度字串、只包含空格,或包含一或多個如 InvalidPathChars 所定義的無效字元。

sourceArchiveFileNamedestinationDirectoryNamenull

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

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

overwriteFilesfalse ,且 destinationDirectoryName 已經包含與所擷取檔案同名的檔案。

-或-

發生 I/O 錯誤。

-或-

ZipArchiveEntry 名稱為零長度、只包含空格,或包含一或多個如 InvalidPathChars 所定義的無效字元。

-或-

解壓縮 ZipArchiveEntry 會導致檔案目的地位於目的地目錄外部 (例如,因為上層目錄存取子所致)。

-或-

ZipArchiveEntry與已擷取之相同封存中的專案同名。

呼叫端沒有必要的權限。

sourceArchiveFileNamedestinationDirectoryName 格式無效。

找不到 sourceArchiveFileName

sourceArchiveFileName 指定的封存不是有效 ZipArchive

-或-

找不到 ZipArchiveEntry,或是其已損毀。

-或-

您使用不支援的壓縮方法來壓縮 ZipArchiveEntry

備註

如果在擷取封存時發生錯誤,封存會維持部分解壓縮狀態。

系統會擷取每個專案,讓擷取的檔案具有與項目必須封存相同的相對路徑 destinationDirectoryName

sourceArchiveFileNamedestinationDirectoryName 參數同時接受相對路徑和絕對路徑。 相對路徑會解譯為與目前的工作目錄相對。

如果要封存的檔案上次修改時間無效,則會使用 198) 0 年 1 月 1 日午夜 (Zip 時間戳格式表示的第一個日期和時間。

適用於

ExtractToDirectory(Stream, String, Boolean)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

從儲存在指定數據流的 zip 封存檔中擷取所有檔案,並將其放在文件系統上的指定目的地目錄中,並選擇性地允許選擇是否應該覆寫目的地目錄中的檔案。

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, bool overwriteFiles);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, bool overwriteFiles);
static member ExtractToDirectory : System.IO.Stream * string * bool -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, overwriteFiles As Boolean)

參數

source
Stream

要從中擷取 zip 封存的數據流。

destinationDirectoryName
String

要在其中放置解壓縮檔案的目錄路徑(指定為相對或絕對路徑)。 相對路徑會解譯為與目前的工作目錄相對。

overwriteFiles
Boolean

若要覆寫檔案,則為 true;否則為 false

例外狀況

destinationDirectoryName> 為 Empty,只包含空格符,或至少包含一個無效的字元。

destinationDirectoryNamesourcenull

中的 destinationDirectoryName 指定路徑超過系統定義的最大長度。

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

封存檔中的項目名稱是Empty,只包含空白字元,或包含至少一個無效的字元。

-或-

解壓縮封存項目會建立 destinationDirectoryName 所指定目錄外的檔案。 (例如,如果項目名稱包含父目錄存取子,這就可能發生)。

-或-

overwriteFilesfalse ,且要擷取的封存專案與已擷取或存在於的專案 destinationDirectoryName同名。

呼叫端不具有存取封存或目的地目錄的權限。

destinationDirectoryName 包含無效的格式。

數據流中包含的 source 封存不是有效的 zip 封存。

-或-

找不到封存項目,或是其已損毀。

-或-

封存項目是使用不支援的壓縮方法進行壓縮。

備註

這個方法會建立指定的目錄和所有子目錄。 目的地目錄不能已經存在。 在擷取之前,會擲回與驗證 包含在參數中source之 zip 封存中的路徑destinationDirectoryName或檔案相關的例外狀況。 否則,如果在擷取期間發生錯誤,封存仍會部分解壓縮。 每個擷取的檔案都有與其來源專案所指定 destinationDirectoryName 目錄相同的相對路徑,且其來源項目必須具有封存的根目錄。 如果要封存的檔案上次修改時間無效,則會使用 198) 0 年 1 月 1 日午夜 (Zip 時間戳格式表示的第一個日期和時間。

適用於

ExtractToDirectory(String, String)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

將指定之 zip 封存中的所有檔案解壓縮到檔案系統上的目錄。

public:
 static void ExtractToDirectory(System::String ^ sourceArchiveFileName, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (string sourceArchiveFileName, string destinationDirectoryName);
static member ExtractToDirectory : string * string -> unit
Public Shared Sub ExtractToDirectory (sourceArchiveFileName As String, destinationDirectoryName As String)

參數

sourceArchiveFileName
String

要擷取之封存的路徑。

destinationDirectoryName
String

要在其中放置解壓縮檔案的目錄路徑(指定為相對或絕對路徑)。 相對路徑會解譯為與目前的工作目錄相對。

例外狀況

destinationDirectoryNamesourceArchiveFileNameEmpty,只含有空白字元,或者含有至少一個無效字元。

destinationDirectoryNamesourceArchiveFileNamenull

destinationDirectoryNamesourceArchiveFileName 中指定的路徑超過系統定義的最大長度。

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

封存檔中的項目名稱是Empty,只包含空白字元,或包含至少一個無效的字元。

-或-

解壓縮封存項目會建立 destinationDirectoryName 所指定目錄外的檔案。 (例如,如果項目名稱包含父目錄存取子,這就可能發生)。

-或-

要擷取的封存專案與已擷取或存在於的專案 destinationDirectoryName同名。

呼叫端不具有存取封存或目的地目錄的權限。

destinationDirectoryNamesourceArchiveFileName 包含無效的格式。

找不到 sourceArchiveFileName

sourceArchiveFileName 指定的封存不是有效的 zip 封存。

-或-

找不到封存項目,或是其已損毀。

-或-

封存項目是使用不支援的壓縮方法進行壓縮。

範例

此範例示範如何使用 類別建立和解壓縮 zip 封存 ZipFile 。 它會將資料夾的內容壓縮成 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

備註

這個方法會建立指定的目錄和所有子目錄。 目的地目錄不能已經存在。 在擷取之前,會擲回與驗證 或 sourceArchiveFileName 參數中destinationDirectoryName路徑相關的例外狀況。 否則,如果在擷取期間發生錯誤,封存仍會部分解壓縮。 每個擷取的檔案都有與其來源專案所指定 destinationDirectoryName 目錄相同的相對路徑,且其來源項目必須具有封存的根目錄。

適用於

ExtractToDirectory(Stream, String)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

從儲存在指定數據流的 zip 封存中擷取所有檔案,並將其放在檔案系統上的指定目的地目錄中。

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName);
static member ExtractToDirectory : System.IO.Stream * string -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String)

參數

source
Stream

要從中擷取 zip 封存的數據流。

destinationDirectoryName
String

要在其中放置解壓縮檔案的目錄路徑(指定為相對或絕對路徑)。 相對路徑會解譯為與目前的工作目錄相對。

例外狀況

destinationDirectoryName> 為 Empty,只包含空格符,或至少包含一個無效的字元。

destinationDirectoryNamesourcenull

中的 destinationDirectoryName 指定路徑超過系統定義的最大長度。

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

封存檔中的項目名稱是Empty,只包含空白字元,或包含至少一個無效的字元。

-或-

解壓縮封存項目會建立 destinationDirectoryName 所指定目錄外的檔案。 (例如,如果項目名稱包含父目錄存取子,這就可能發生)。

-或-

要擷取的封存專案與已擷取或存在於的專案 destinationDirectoryName同名。

呼叫端不具有存取封存或目的地目錄的權限。

destinationDirectoryName 包含無效的格式。

數據流中包含的 source 封存不是有效的 zip 封存。

-或-

找不到封存項目,或是其已損毀。

-或-

封存項目是使用不支援的壓縮方法進行壓縮。

備註

這個方法會建立指定的目錄和所有子目錄。 目的地目錄不能已經存在。 在擷取之前,會擲回與驗證 包含在參數中source之 zip 封存中的路徑destinationDirectoryName或檔案相關的例外狀況。 否則,如果在擷取期間發生錯誤,封存仍會部分解壓縮。 每個擷取的檔案都有與其來源專案所指定 destinationDirectoryName 目錄相同的相對路徑,且其來源項目必須具有封存的根目錄。 如果要封存的檔案上次修改時間無效,則會使用 198) 0 年 1 月 1 日午夜 (Zip 時間戳格式表示的第一個日期和時間。

適用於

ExtractToDirectory(Stream, String, Encoding)

來源:
ZipFile.Extract.cs
來源:
ZipFile.Extract.cs

從儲存在指定數據流的 zip 封存檔中擷取所有檔案,並將其放在檔案系統上的指定目的地目錄中,並使用指定的字元編碼進行專案名稱。

public:
 static void ExtractToDirectory(System::IO::Stream ^ source, System::String ^ destinationDirectoryName, System::Text::Encoding ^ entryNameEncoding);
public static void ExtractToDirectory (System.IO.Stream source, string destinationDirectoryName, System.Text.Encoding? entryNameEncoding);
static member ExtractToDirectory : System.IO.Stream * string * System.Text.Encoding -> unit
Public Shared Sub ExtractToDirectory (source As Stream, destinationDirectoryName As String, entryNameEncoding As Encoding)

參數

source
Stream

要從中擷取 zip 封存的數據流。

destinationDirectoryName
String

要在其中放置解壓縮檔案的目錄路徑(指定為相對或絕對路徑)。 相對路徑會解譯為與目前的工作目錄相對。

entryNameEncoding
Encoding

在此封存中讀取或寫入項目名稱時要使用的編碼方式。 只有當需要編碼以與 Zip 封存工具和程式庫互通,且這類工具和程式庫不支援項目名稱使用 UTF-8 編碼時,指定此參數的值。

例外狀況

destinationDirectoryName> 為 Empty,只包含空格符,或至少包含一個無效的字元。

-或-

entryNameEncoding 會設定為 UTF-8 以外的 Unicode 編碼方式。

destinationDirectoryNamesourcenull

中的 destinationDirectoryName 指定路徑超過系統定義的最大長度。

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

封存檔中的項目名稱是Empty,只包含空白字元,或包含至少一個無效的字元。

-或-

解壓縮封存項目會建立 destinationDirectoryName 所指定目錄外的檔案。 (例如,如果項目名稱包含父目錄存取子,這就可能發生)。

-或-

要擷取的封存專案與已擷取或存在於的專案 destinationDirectoryName同名。

呼叫端不具有存取封存或目的地目錄的權限。

destinationDirectoryName 包含無效的格式。

數據流中包含的 source 封存不是有效的 zip 封存。

-或-

找不到封存項目,或是其已損毀。

-或-

封存項目是使用不支援的壓縮方法進行壓縮。

備註

這個方法會建立指定的目錄和所有子目錄。 目的地目錄不能已經存在。 在擷取之前,會擲回與驗證 包含在參數中source之 zip 封存中的路徑destinationDirectoryName或檔案相關的例外狀況。 否則,如果在擷取期間發生錯誤,封存仍會部分解壓縮。 每個擷取的檔案都有與其來源專案所指定 destinationDirectoryName 目錄相同的相對路徑,且其來源項目必須具有封存的根目錄。 如果要封存的檔案上次修改時間無效,則會使用 198) 0 年 1 月 1 日午夜 (Zip 時間戳格式表示的第一個日期和時間。

適用於