The file_selector() function does most, but not quite all, of what's possible by directly calling the Win32 function for an Open/Save dialog. That's part of what would make me hesitate to switch to doing the Win32 call, since it would involve a bunch more work just to accomplish the same thing as you're doing right now with just a single line of code. However, so far as I can tell, that's probably what it would take to accomplish this, other than doing something like a custom XUI, which would also be a fair bit of work, but possibly of a more comfortable sort, depending upon your tastes.
If you're interested in the Win32 route, the function you'll want to look at is called GetSaveFileName. It requires reading and writing a structure, which you can do with the unpack() and pack() functions, respectively.