Tl:DR: there are many different ways to send file paths to system library functions. That's mostly because of Windows' long legacy support history. Don't worry about it - just pick one and go.
All this can of course be fixed with another layer of indirection. But if you ever wanted to know why Windows file APIs and filesystems are so dog-slow, here is (part of) your answer.
[0] e.g. there are lower level APIs that can create and access files and filenames that higher level APIs will filter out or disallow.
Back in my day we just walked into the office of the man in charge and shook hands, we struck deals like real men. If we ask ask the NT kernel politely in a language it understands, we will get our filepath. Right?
http://undocumented.ntinternals.net/index.html?page=UserMode...
Describes Windows Forms vs everything else MS has been trying to do in the past 15 years.