![](/img/trans.png)
[英]how do we ensure that the extraction process is successful with C# ZipFile.ExtractToDirectory?
[英]C# Visual Studio doesn't recognize ZipFile.ExtractToDirectory
我正在為工作中的項目開發下載工具,並且正在嘗試創建一個函數來解壓縮zip文件並將內容提取到臨時目錄中。 (我使用的是Visual Studio專業版4.5.1。)
但是,即使將System.IO.Compression和System.IO.Compression.FileSystem.dll添加到我的引用中之后,Visual Studio仍然無法識別ExtractToDirectory方法。 錯誤消息告訴我“ Ionic.Zip.ZipFile不包含'ExtractToDirectory'的定義”。
有人知道如何解決此問題,以便我可以提取文件嗎? 這是我的代碼(zip的文件路徑被傳入):
private void UnzipStation(string zipPath)
{
try
{
string newFp = Path.Combine(Path.GetTempPath(), "CommissioningFiles");
Directory.CreateDirectory(newFp);
ZipFile.ExtractToDirectory(zipPath, newFp);
}
catch (Exception ex)
{
MessageBox.Show("Error unzipping station files. Contact a Novar representative. \n" + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
您在項目(Ionic.Zip.ZipFile)中有DotNetZip的參考和使用聲明。 如果您決定停止使用它並開始使用System.IO.Compression,請刪除using語句和引用。 如果仍然在其他地方使用DotNetZip,請使用System.IO.Compression.Zipfile.ExtractToDirectory(zipPath,newFp);
明確使用System.IO.Compression中的ZipFile類。
錯誤消息告訴我“ Ionic.Zip.ZipFile不包含'ExtractToDirectory'的定義”。
您有兩個名為ZipFile
類,它們對編譯器“可用”。 C#編譯器對您要使用哪一個感到困惑。 當您確實想使用System.IO.Compression.ZipFile
時,它認為您想使用Ionic.Zip.ZipFile
。
您可以通過兩種方式解決此問題。 首先,完全指定要使用的ZipFile
類的名稱空間:
System.IO.Compression.ZipFile.ExtractToDirectory(zipPath, newFp);
或者,您可以在C#文件的頂部添加using
指令:
using ZipFile = System.IO.Compression.ZipFile;
要使用Ionic.Zip,您必須這樣做:
using (ZipFile zipFile = new ZipFile(filePath))
{
zipFile.ExtractAll(newFp);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.