ZIP-архив самое оно. Тебе остаётся написать свою реализацию файловой системьІ в нём:
QAbstractFileEngine. После того как напишешь, будет тебе файловая система в одном файле с Random-Access и прочими прелестями, обращаться к которой можно через: QFile, QDir, QFileInfo. Как к обьІчньІм файлам.
// open file for writing:
QFile storage_file( "zipstorage:/filename.zip/config.txt" );
storage_file.open( QIODevice::WriteOnly );
...
// load image from storage:
QImage my_image( "zipstorage:/filename.zip/some_dir_in_zip/picture.jpg" );
Остаётся только сделать реализацию
Дело непростое, зато интересное.