I have a suggestion. Instead of decompressing the 7z files why not just reading the 7z archive, gettig the file listing, and then decompressing only the rom selected. I am sure there must be something in the 7z library to get a string matrix containing the files of the archive. Then it should be easy to construct a "virtual" listing for the GUI. And then you only have to do one file decompressing saving lots of time.
At the nd of the day, tagging mp3s is better. You can still organize them in folders, or whatever, but using tags is way better. Yeah, it may be a paing in the ass to set it up for the first time, but not that hard if you use a tool that autotags them using folder and file names.
I have a suggestion. Instead of decompressing the 7z files why not just reading the 7z archive, gettig the file listing, and then decompressing only the rom selected. I am sure there must be something in the 7z library to get a string matrix containing the files of the archive. Then it should be easy to construct a "virtual" listing for the GUI.