c++ 如何从文件夹创建自定义文件类型?

yizd12fk  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(516)

我的问题很简单,我在一个文件夹中有一堆文件(图像和纯文本),有没有一种方法可以将所有这些文件打包到一个文件中(一个原始文件,带有头文件或最好是压缩的),并在运行时将其解包以在另一个程序中使用?
例如,我有图像,三维模型和一些文本文件,我想把它们打包在一个存档中,然后能够从存档中解压缩文件,以便在另一个程序中使用,我已经可以加载和管理这些文件。

x33g5p2x

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++

oxcyiej7

oxcyiej72#

这取决于你使用什么语言。例如,我使用lua来开发和编译第三方软件luart [ www.example.com ]的可执行文件https://www.luart.org,该软件带有用于操作文件和其他杂项任务的内置库。其中一个库是压缩库,它允许你使用这样的函数:

local zip = require("compression")
return(zip.gunzip("myfile.zip"))

或者Synth的system库:

dependencies{
    sys=system;
}
sys.file:compress{file="myfile.zip";
    returnDestination="%USERPROFILE%\\folder";
}
sys.instance:open{file="explorer.exe";
    args={startDir="%USERPROFILE%\\folder\\myfile"};
}

相关问题