I had some success with windows. The file dialog works as a blueprint, but does not allow for parameterizing the file type filters. So I ended up making a hardcoded blueprint node for every file dialog type my application uses. Weirdly, it worked at one point here. I haven’t tried with other platforms.
I also tried option 4. It works quite well, but it’s considerably more work. You’ll have to implement all of the interaction logic yourself, like double-click to select, and so on. If you have the time, I definitely recommend this method.