簡體   English   中英

C#Visual Studio無法識別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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM