Search code examples
c#pathrelative-path

In C#, how do I combine more than two parts of a file path at once?


To combine two parts of a file path, you can do

System.IO.Path.Combine (path1, path2);

However, you can't do

System.IO.Path.Combine (path1, path2, path3);

Is there a simple way to do this?


Solution

  • As others have said, in .NET 3.5 and earlier versions there hasn't been a way to do this neatly - you either have to write your own Combine method or call Path.Combine multiple times.

    But rejoice - for in .NET 4.0, there is this overload:

    public static string Combine(
        params string[] paths
    )
    

    There are also overloads taking 3 or 4 strings, presumably so that it doesn't need to create an array unnecessarily for common cases.

    Hopefully Mono will port those overloads soon - I'm sure they'd be easy to implement and much appreciated.