How do I get .NET’s Path.Combine to convert forward slashes to backslashes?

As others have said, Path.Combine doesn’t change the separator.
However if you convert it to a full path:

Path.GetFullPath(Path.Combine("test1/test2", "test3\\test4"))

the resulting fully qualified path will use the standard directory separator (backslash for Windows).

Note that this works on Windows because both \ and / are legal path separators:

Path.DirectorySeparatorChar = \
Path.AltDirectorySeparatorChar = /

If you run on, say, .NET Core 2.0 on Linux, only the forward slash is a legal path separator:

Path.DirectorySeparatorChar = /
Path.AltDirectorySeparatorChar = /

and in this case it won’t convert backslash to forward slash, because backslash is not a legal alternate path separator.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)