2011-07-13 118 views
1

如何使用C#解壓縮文件?我發現我必須使用第三方庫。有沒有直接的方法?如何使用C#解壓縮壓縮文件?

+0

[推薦一個庫/ API來解壓C#文件](http:// stackoverflow。com/questions/1023476/recommended-a-library-api-to-unzip-file-in-c) – wRAR

+1

不同意投票結束這是基於一個確切的dup,因爲它似乎是一個稍微不同的變化該問題(推薦系統庫vs推薦外部庫),即使答案最終重疊。 – heisenberg

+0

@kekekela非常感謝 – Adham

回答

2

System.IO.Packaging命名空間包含一些壓縮類,如ZipPackage,但它們絕不像使用第三方庫那麼簡單。我強烈建議你考慮一個第三方庫。

2

您可以使用該框架的工具來壓縮,然後將其解壓

sinxe .NET 1.x中,你有很多compession圖書館內上了網,有些是免費的一些是商業。 偉大的免費圖書館是#Zip,或免費的C#IDE的開發者#develop。

.NET Framework 2.0引入了用於壓縮和解壓縮流的GZipStream和DeflateStream類。這裏是MSDN鏈接:

http://msdn2.microsoft.com/en-us/library/system.io.compression.gzipstream(VS.80).aspx

http://msdn2.microsoft.com/en-US/library/system.io.compression.deflatestream(VS.80).aspx

+1

對#ZipLib而言+1 ......一直保持着永遠的效果,至今仍在各地使用。好東西... url是http://sharpdevelop.net/OpenSource/SharpZipLib/ – ckramer

1

我從Codeplex上的自由Iconic Zip有很大的運氣。它非常快速地拉鍊和解壓縮,效果很好,尺寸很小。它也適用於Mono。

0

對於zip文件,DotNetZip很好用。只需一個程序集即可支持zip文件。

對於gzip文件,你可以在System.IO.Compression namespace,或DotNetZip使用流。請注意,如果您有*.tar.gz*.tgz文件,則您需要的內容也可以是tar(1)tar(5)

對於zlib壓縮數據,DotNetZip再次是你的朋友。 zlib使用Deflate算法。不過,我不確定zlib 6System.IO.Compression.DeflateStream是否可以兼容。

還有其他的庫支持這些壓縮格式,但我相信其中很多都是非託管代碼的包裝。這是好事還是壞事取決於你的要求。

DotNetZip是純粹的託管代碼。我的測試表明它的執行速度與Info-Zip's open-source zip/unzip的執行速度大致相同。生成的壓縮文件不是字節相同的,但它們是兼容的並且具有大致相同的壓縮比率。