我正在修復中。我需要從網絡位置下載一個zip文件,然後在本地機器上解壓縮並使用這些文件。唯一的限制是我不能使用任何第三方DLL。如何在不使用第三方dll的情況下使用dotnet framework 4.0提取zip文件
回答
在.NET framework 4.5中現在有System.IO.Compression.ZipFile.ExtractToDirectory(String, String)
方法。
System.IO.Compression;) – tanathos 2013-02-11 14:48:32
OOps,快速寫作...我會糾正它:) – 2013-02-12 10:51:10
我喜歡這個問題是如何特別要求4.0解決方案和4.5回答被選中 – DontFretBrett 2014-06-26 20:30:57
快速谷歌搜索變成了這個。 GZipStream Class MSDN Reference
「...但是,這個類本身並不提供添加文件或從.zip壓縮文件中提取文件的功能......」 – 2010-08-09 06:31:08
沒有「好」的方法來做到這一點。你可以使用公開的information在ZIP文件結構和類如DeflateStream上自己實現ZIP算法(儘管如果它沒有使用DEFLATE算法進行壓縮,它也可能不起作用)。有一些關於this blog post可能的替代方法的信息,但簡短的版本是,你將不得不使用第三方庫或自己重寫。
如果這種情況下您可以以GPL方式發佈源代碼,您可以將項目中的代碼複製粘貼到您自己的代碼中,從而避免使用DLL的要求。除此之外,爲什麼不能使用第三方DLL?
這不會出現成爲一個WCF的問題,而GZipStream不會幫助ZIP文件,它通常使用DEFLATE算法。 – 2010-08-09 06:56:42
你不明白我的帖子。我建議採用其他方法... – Turowicz 2010-08-09 11:31:47
SharpZipLib將會失敗,並且unix主機系統會壓縮文件。例如,當在MacOSX機器上製作時,使用內部壓縮壓縮器 – Highmastdon 2013-04-24 10:19:32
我不知道它是否仍然可以在VS2010,但在早期版本的J#被列入VS和J#包括java.util.zip
類,因爲它是VS的一部分,它不是第三方DLL,所以你可以這樣做。
這裏展示瞭如何做這CodeProject上的文章:Zip and Unzip from a C# program using J# runtime
有趣的是,我不知道它在那裏...... – 2010-08-09 07:48:53
請注意,J#不再隨.NET Framework一起提供,雖然它仍然隨VS2005- 2015年。對於某些人來說,這仍然是一個有效的解決方案。 https://social.msdn.microsoft.com/Forums/office/en-US/627b5ca3-fac7-461f-9e3a-824fd2a5eb32/problem-with-vjslibdll?forum=netfxbcl – ErikusMaximus 2017-11-01 20:57:12
在.NET框架本身不(目前)對ZIP文件的官方支持。正如其他人所指出的,有幾個高質量的第三方免費庫可供使用,並且J#運行時支持它。
我推薦第三方解決方案,但如果你絕對不能這樣做,那麼還有另外一招:ZipPackage,這是WPF的一部分。它支持ZIP文件(增加了額外的元數據),並且可以讀取大部分 ZIP文件。
- 1. 如何在不使用asp.net中的第三方dll的情況下閱讀PDF#
- 2. 在沒有第三方庫的情況下使用Java中的C#DLL
- 3. 如何在不使用App.config的情況下使用Entity Framework
- 4. 在不使用VB.NET中的第三方的情況下生成PDF
- 5. 如何在不使用第三方庫的情況下使用java在excel文件中管理excel表格
- 6. 是否可以在不使用任何第三方軟件/服務的情況下使用DRM EPub文件?
- 7. 如何在不使用javascript的情況下讀取excel文件
- 8. 如何在Visual Studio C++中使用第三方DLL文件?
- 9. 如何在MATLAB打開的情況下使用第三方/命令行git?
- 10. 如何在不使用任何第三方控件的情況下使用mvc將數據導出爲excel
- 11. 在不使用DLL的情況下在Delphi中使用捲曲
- 12. 如何在不安裝Zend Framework的情況下使用Zend庫
- 13. 如何在不使用ActiveX的情況下使用javascript讀取文本文件?
- 14. 如何在不使用tmp目錄的情況下重新打包zip文件?
- 15. 如何在不知道參數的情況下使用dll?
- 16. 如何使用php提取.zip文件
- 17. 如何在不加載CLR的情況下使用託管DLL?
- 18. 如何在沒有使用Visual Studio 2010/Google Test的第三方DLL的情況下單元測試代碼?
- 19. 在不使用第三方的情況下將JSON解析爲JSONP
- 20. 如何在不使用ios中的第三方文件的情況下獲得facebook的滑動菜單?
- 21. 在不使用jar文件的情況下讀取Excel文件
- 22. 如何使用C#4.0從文件夾解壓縮所有.Zip文件,而不使用任何OpenSource DLL?
- 23. 如何在不使用第三方工具的情況下壓縮vb6中的文件夾?
- 24. 在ASP.NET中使用第三方COM dll
- 25. 如何在不使用vsdrfcomselfreg的情況下注冊DLL
- 26. 如何在不使用Visual Studio的情況下編譯DLL?
- 27. 如何在不使用$ scope的情況下使用apply()方法?
- 28. 在不使用第三方庫的情況下導出excel中的角度js
- 29. 第三方應用如何在不使用AdWords報告API的情況下獲取數據?
- 30. 如何在不添加DLL的情況下在C#中使用DLL函數?
這看起來像這個問題的重複:http://stackoverflow.com/questions/836736/unzip-files-programmatically-in-net。 您可能想要查看更多的答案。 – Rich 2010-08-09 06:44:04
爲什麼你不能使用任何第三方庫?這是一個愚蠢的要求...可能是由管理人員做出的;) – 2010-08-09 07:51:18
這實際上是一個非常重要的要求,因爲缺乏.NET Framework對zips的支持增加了添加另一個dll的複雜性(並且安全問題是真實的,因爲如果你看看微軟的代碼盡職調查,它比大多數好得多) – 2012-07-04 14:42:24