2012-07-31 68 views
1

我有一個可視化的c項目,我想在其中包含一個目錄結構中包含多個文件的存檔 我想以編程方式將其提取到磁盤上某處,使用一個最好是小型庫(小的我的意思是隻有幾個.c和.h文件 - 大小並不重要),但我似乎只能找到直接解壓縮或壓縮數據的庫(我查看了lzo-lzop-minilzo,但我似乎找不到任何表示,它可以decmpress整個目錄樹甚至儘管我曾經LZOP已經壓縮與文件歸檔)從c資源解壓縮多個文件

感謝

回答

1

zlib的和伴隨(在contrib)minizip庫支持.zip格式解壓縮。

您可以將.zip文件打包爲可執行文件中的資源。要從.exe獲取原始數據,請使用FindResource,SizeofResource,LoadResource,LockResource API。

然後參閱minizip的示例,瞭解如何解壓縮並讀取zlib的文檔以重載I/O回調。

聲明:我爲Linderdaum Engine's虛擬文件系統做了這個,現在支持.zip,.tar,.rar(未壓縮)和.tar.gz格式。 VFS的代碼位於Src/Linderdaum/Core/VFS中,並且符合MIT商業用途許可。它是C++,但zlib的I/O包裝使用C風格的API,代碼非常簡單。

+0

感謝您的信息。我只是看了一下源代碼,但我想要一些更簡單的東西,比如:extractallfiles(zipfile,targetfolder),因爲這個特定的exctraction只是一個小部分,我不想實現另一個大的framweork只是爲了提取一個單一的檔案 – print 2012-08-01 07:10:38

+0

MIT許可僅限於非商業用途。檢查:http://www.linderdaum.com/home/index.php?title=Licensing: – 2012-08-01 09:38:21