我遇到了一個奇怪的問題,使用ZipFile和ZipArchive的.Net 4.5。閱讀帶有空子目錄的壓縮文件夾導致問題
ZipFile.CreateFromDirectory獲取目錄的所有內容,包括空的文件夾。 如果我嘗試使用Windows資源管理器通過右鍵單擊>發送到>壓縮文件夾創建相同的壓縮文件,我收到一條警告消息,指出空文件夾被省略。
我正在將生成的zip文件加載到在Apache Tomcat上運行的應用程序中。此應用程序會爲ZipFile.CreateFromDirectory生成的zip文件中包含的每個文件引發錯誤。我通過Windows資源管理器手動創建的zip文件被讀取得很好。
我懷疑問題在於空的壓縮文件夾,但還沒有能夠明確地得出結論。如果空文件夾是原因,我需要一種方法來使用ZipFile.CreateFromDirectory排除空文件夾。
我沒有.NET 4.5,但是從[備註部分](http://msdn.microsoft.com/en-us/library/hh485721(V = vs.110)的.aspx):_ 「文件系統中的目錄結構保存在歸檔中,如果該目錄爲空,則會創建一個空歸檔。」_所以這是設計。您必須在tomcat上的應用程序中修復它,或者如果可能的話,您必須創建一個臨時文件夾,其中只包含非空文件夾。我還沒有找到一種方法來排除'CreateFromDirectory'中的空文件夾。 – 2014-09-22 14:00:12
謝謝蒂姆。通過溫度壓縮似乎是一個可行的解決方案。如果你把這個作爲答案,我可以接受它。 – 2014-09-22 14:21:08