I am working on a C++ application which lets users work on projects. Each project consists of several files that should not be known / edited manually by the user.
For that we currently use a folder structure to store the settings, the files created by the user in the app and some automatically generated files.
We would like to have only one file to ease the opening of the projects (selecting one file with a dedicated extension is easier than selecting a folder), to ease sharing the projects and also to limit the risks of users tampering with the files.
My first thought would be to do something like Excel (create an archive containing all the files and put a custom extension on it) but if I do so I don't know how I should access the file from my app (do I need to extract the archive in a temporary folder while my app is running for example, and if so what happens if the app crashes/the computer crashes/...).
Are there any standards/ known and validated ways of doing this kind of things ?