Dynamicaly load assets recursively

I’m trying to create an FPS Sandbox game with modding enabled.

To do that I’d like something realy simple for modders. I’ll use Lua as a scripting language. Because of those requirements I need to make a C++ FPS project.

The question is in the title : how can I load dynamicaly and recursively all reconized types files (models/textures/sounds/…) in a defined folder ? This must be using C++, because only the C++ will be able to know what folders should be cooked.

Folder structure is defined by this sheme : GameDir/Addons/*. * represents all sub folders inside Addons. Each Subfolder inside this “Addons” folder will have a “Content” folder which is the folder that must be cooked even if files may not be used by the game.

One of my friends on Steam told me it’s possible but complicated using .ini files. Can you explain me if that’s true ? If that’s true, can you explain me how exactly the .ini filesystem works ?
After what he told me I’m thinking of a runtime .ini file generator, but how would I hook before assets loading ?