2012-10-31 191 views
23

微軟在.NET 4.5的System.IO.Compression名稱空間中引入了對ZIP文件處理的改進。即類別ZipArchiveZipFile。 但是,我還沒有看到使用本機.NET ZIP文件處理密碼保護文件的方法。有沒有辦法做到這一點? (我知道有很好的第三方zip文件庫,這不是問題。)使用.NET 4.5解壓縮受密碼保護的ZIP文件

+1

你看過DotNetZip Library ..嗎?這裏是一個鏈接,它有很多的例子 http://dotnetzip.codeplex.com/wikipage?title=CS-Examples&referringTitle=Examples – MethodMan

+0

好問題非常直接爲您尋找什麼! –

回答

16

不幸的不是。 .Net Framework 4.5中對密碼保護的zip文件沒有支持。在這種情況下,您必須切換到其中一個衆所周知的第三方庫。

4

在看4.534框架提供的methods,沒有一種方法允許帶有zip文件的密碼。正如你的問題中提到的,第三方將是你最好的選擇。

8

正如指出的那樣,DotNetZip是你的朋友。開箱取出zip文件一樣簡單

using (ZipFile archive = new ZipFile(@"c:\path\to\your\password\protected\archive.zip",)) 
{ 
    archive.Password = "your-pass-word-here" ; 
    archive.Encryption = EncryptionAlgorithm.PkzipWeak ; // the default: you might need to select the proper value here 
    archive.StatusMessageTextWriter = Console.Out; 

    archive.ExtractAll(@"c:\path\to\unzip\directory\", ExtractExistingFileAction.Throw) ; 
} 

以我的經驗,DotNetZip跑一樣快Info-Zip's開源unzip效用,並使用大致相同的內存量。

3

在本地.net 4.5庫中似乎沒有任何對受密碼保護的壓縮文件的支持,類似於Windows資源管理器中似乎沒有支持的方式,即使在Windows 10中也是如此! 有些人報告說,他們使用第三方DotNetLib解壓縮腐敗問題,因此請確保您廣泛測試您是否沿着該路徑行進或嘗試使用SharpZipLib