我的问题很简单,我在一个文件夹中有一堆文件(图像和纯文本),有没有一种方法可以将所有这些文件打包到一个文件中(一个原始文件,带有头文件或最好是压缩的),并在运行时将其解包以在另一个程序中使用?例如,我有图像,三维模型和一些文本文件,我想把它们打包在一个存档中,然后能够从存档中解压缩文件,以便在另一个程序中使用,我已经可以加载和管理这些文件。
x33g5p2x1#
我以前用过zziplib(http://zziplib.sourceforge.net/)。我没有特别的困难将它集成到我的跨平台(Windows,Linux,MacOSX)。我只是使用了一个不同的扩展,以明确这是要用在我的程序。因此,我可以将我的 *.lvl文件重命名为 *.zip,并使用7zip,winrar,file-roller等打开文件。还有很多其他的图书馆:Zlib -http://zlib.net/-没有文件格式,但使用gzip。7-zip SDK -http://www.7-zip.org/sdk.html-支持LZMA,zip,bzip 2和其他一些。无论你选择什么,都要小心使用许可证。zlib以其非常自由的许可证而闻名,但其中一些可能在GPL下,这取决于您如何使用它可能需要源代码分发。您可能还想查看:Compression Libraries For C++
oxcyiej72#
这取决于你使用什么语言。例如,我使用lua来开发和编译第三方软件luart [ www.example.com ]的可执行文件https://www.luart.org,该软件带有用于操作文件和其他杂项任务的内置库。其中一个库是压缩库,它允许你使用这样的函数:
local zip = require("compression") return(zip.gunzip("myfile.zip"))
或者Synth的system库:
system
dependencies{ sys=system; } sys.file:compress{file="myfile.zip"; returnDestination="%USERPROFILE%\\folder"; } sys.instance:open{file="explorer.exe"; args={startDir="%USERPROFILE%\\folder\\myfile"}; }
2条答案
按热度按时间x33g5p2x1#
我以前用过zziplib(http://zziplib.sourceforge.net/)。我没有特别的困难将它集成到我的跨平台(Windows,Linux,MacOSX)。我只是使用了一个不同的扩展,以明确这是要用在我的程序。因此,我可以将我的 *.lvl文件重命名为 *.zip,并使用7zip,winrar,file-roller等打开文件。
还有很多其他的图书馆:
Zlib -http://zlib.net/-没有文件格式,但使用gzip。
7-zip SDK -http://www.7-zip.org/sdk.html-支持LZMA,zip,bzip 2和其他一些。
无论你选择什么,都要小心使用许可证。zlib以其非常自由的许可证而闻名,但其中一些可能在GPL下,这取决于您如何使用它可能需要源代码分发。
您可能还想查看:Compression Libraries For C++
oxcyiej72#
这取决于你使用什么语言。例如,我使用lua来开发和编译第三方软件luart [ www.example.com ]的可执行文件https://www.luart.org,该软件带有用于操作文件和其他杂项任务的内置库。其中一个库是压缩库,它允许你使用这样的函数:
或者Synth的
system
库: