Use .string() instead of .native() in places where we want to combine paths with std::string.
Convert some methods to take a fs::path as parameter instead of std::string, for cases where they are called with paths as parameters (which can't be implicitly converted to std::string if the path's string_type is wstring).
I'm tempted to move all of those to
With appropriate comments about what we're getting from those headers, it seems like this is easier to follow than complicated platform-specific #ifs.