Search code examples
c#filesystemsstring-building

Building a directory string from component parts in C#


If i have lots of directory names either as literal strings or contained in variables, what is the easiest way of combining these to make a complete path?

I know of

Path.Combine
but this only takes 2 string parameters, i need a solution that can take any number number of directory parameters.

e.g:

string folder1 = "foo";
string folder2 = "bar";

CreateAPath("C:", folder1, folder2, folder1, folder1, folder2, "MyFile.txt")

Any ideas? Does C# support unlimited args in methods?


Solution

  • Does C# support unlimited args in methods?

    Yes, have a look at the params keyword. Will make it easy to write a function that just calls Path.Combine the appropriate number of times, like this (untested):

    string CombinePaths(params string[] parts) {
        string result = String.Empty;
        foreach (string s in parts) {
            result = Path.Combine(result, s);
        }
        return result;
    }