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 所定義的無效字元。
-或-
解壓縮 destinationArchiveFileName
會導致目的地檔案位於 ZipArchiveEntry 外部 (例如,在項目名稱包含上層目錄存取子的情況下)。
-或-
ZipArchiveEntry 與相同封存中已解壓縮的項目同名。
呼叫端沒有必要的權限。
destinationArchiveFileName
格式無效。
備註
指定的目錄可能已經存在。 此方法會視需要建立指定的目錄和所有子目錄。
如果在擷取封存時發生錯誤,封存會維持部分解壓縮狀態。
系統會擷取每個專案,讓擷取的檔案具有與專案與封存根目錄相同的相對路徑 destinationDirectoryName
。
如果要封存的檔案上次修改時間無效,則會使用 Zip 時間戳格式表示的第一個日期和時間, (1980 年 1 月 1 日午夜) 。