在OSX上创建文件包

Thi*_*man 4 macos zip file-extension bundle macos-carbon

对于一个应用程序,我想将一组文件存储在一起,并将它们作为单个文件出现在文件系统中,以便于管理.我目前将所有内容存储在一个文件夹中.

我想保持可访问的内容,以便您可以根据需要手动编辑内部内容.

一种方法是创建一个zip存档,并为其提供除.zip之外的自定义扩展.然后它显示为文件类型,如果需要,您可以解压缩并访问内容,但是为了正常使用,请将其隐藏起来.

我似乎找不到方便的方法来做到这一点.Boost和zlib可以进行压缩,但不能与归档一起使用.我找到了libzip,但我很难理解如何使用它,对我而言,它似乎只读取/写入zip存档而不进行实际压缩.

有没有更方便的方法来解决这个问题?

你可以调用系统函数来从c ++/Carbon在OSX上创建存档吗?

还有另一种方法可以使文件夹显示为单个文件吗?

e.J*_*mes 6

在OSX中,您可以创建文档包(类似于应用程序包),它们在Finder中被视为单个文件,但实际上只是具有某种内部结构的目录.

Apple不会压缩这些包,但它们确实提供了您描述的功能,并且可以使用CFBundleRef通过CoreFoundation创建和访问它们.

从文档:

...关于创建文档包的重要一点是它只是一个目录.只要注册了文档包的类型(如"注册文档类型"中所述),您所要做的就是创建一个具有相应文件扩展名的目录.(Finder使用文件扩展名作为其提示将目录视为包.)您可以使用标准BSD文件系统例程创建目录(并创建要放在该目录中的任何文件)...