<p>I would like to create a file format for my app like Quake, OO, and MS Office 07 have.</p>

<p>Basically a uncompressed zip folder, or tar file.</p>

<p>I need this to be cross platform (mac and windows).</p>

<p>Can I do something via command prompt and bash?</p>

[{'answer_id': 79146, 'author': 'André Chalella', 'author_id': 4850, 'author_profile': 'https://Stackoverflow.com/users/4850', 'pm_score': 2, 'selected': False, 'text': '<p>Zip is supported everywhere. If a container is all you need, than those are surely good options.</p>\n'}, {'answer_id': 79152, 'author': 'Ash', 'author_id': 5023, 'author_profile': 'https://Stackoverflow.com/users/5023', 'pm_score': 3, 'selected': True, 'text': '<p>Have a look at the open source <a href="http://www.7-zip.org/" rel="nofollow noreferrer">7Zip</a> compression format.  For your specific needs, you can use it in an "Archive" mode, zero compression but very fast.</p>\n\n<p>It provides a powerful SDK, LZMA, from the site:</p>\n\n<p>"LZMA is the default and general compression method of 7z format in the 7-Zip program. LZMA provides a high compression ratio and very fast decompression, so it is very suitable for embedded applications. For example, it can be used for ROM (firmware) compressing.</p>\n\n<p>The LZMA SDK provides the documentation, samples, header files, libraries, and tools you need to develop applications that use LZMA compression."</p>\n'}, {'answer_id': 79159, 'author': 'Bryan Oakley', 'author_id': 7432, 'author_profile': 'https://Stackoverflow.com/users/7432', 'pm_score': 2, 'selected': False, 'text': '<p>If you want a single file that is portable to all platforms and which contain structured data, consider using sqlite. You\'ll get a full featured ACID compliant database that exists on disk as a single file.</p>\n\n<p>There are libraries you can link against to directly access the file, and there is a command line tool you can use as well. No matter what language you are using, most likely there is support for it.</p>\n\n<p><a href="http://www.sqlite.org" rel="nofollow noreferrer">http://www.sqlite.org</a></p>\n'}, {'answer_id': 79172, 'author': 'shea241', 'author_id': 14656, 'author_profile': 'https://Stackoverflow.com/users/14656', 'pm_score': 0, 'selected': False, 'text': '<p>First thing you should ask yourself is, "Do I really need to make my own?"</p>\n\n<p>Depending on what you want to use it for, you are probably better off using a common format and some pre-made libraries which already handle one of those formats very well.</p>\n\n<p>Good places to start:\n<a href="http://www.destructor.de/libtar/index.htm" rel="nofollow noreferrer">http://www.destructor.de/libtar/index.htm</a>  (tar -- a the \'container\' format)\n<a href="http://www.zlib.net/" rel="nofollow noreferrer">http://www.zlib.net/</a>  (zlib -- a method of compressing data before or after you put it in the container)</p>\n\n<p>If you still really think you need to make your own, I would suggest studying something very simple first, like tar\'s format:</p>\n\n<p><a href="http://en.wikipedia.org/wiki/Tar_(file_format)" rel="nofollow noreferrer">http://en.wikipedia.org/wiki/Tar_(file_format)</a>\nor\n<a href="http://schmidt.devlib.org/file-formats/tar-archive-file-format.html" rel="nofollow noreferrer">http://schmidt.devlib.org/file-formats/tar-archive-file-format.html</a></p>\n'}, {'answer_id': 79206, 'author': 'Javier', 'author_id': 11649, 'author_profile': 'https://Stackoverflow.com/users/11649', 'pm_score': 1, 'selected': False, 'text': '<p>SQLite is great.</p>\n\n<p>A single file, crossplatform, a tiny library, SQL access to data, transactions, the whole enchilada.</p>\n\n<p>you can use transactions to guarantee consistent return points in case of crashing.  check <a href="http://sqlite.org/whentouse.html" rel="nofollow noreferrer">uses for sqlite</a>, they specifically advocate using it as a data model layer for desktop applications.</p>\n\n<p>also, there\'s a command-line tool to manually access the data.</p>\n'}, {'answer_id': 87787, 'author': 'Brian Mitchell', 'author_id': 13716, 'author_profile': 'https://Stackoverflow.com/users/13716', 'pm_score': 0, 'selected': False, 'text': "<p>Instead of making a format, I'd just decide on a convention. One or more named files within the container have the metadata you need to access the rest of the files, and know what to do with them. The container itself, though, should just be some ubiquitous format, such as zip. No need to reinvent the wheel, here.</p>\n"}]
['https://Stackoverflow.com/questions/79136', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/10472/']