[c#] How does one extract each folder name from a path?

I see your method Wolf5370 and raise you.

internal static List<DirectoryInfo> Split(this DirectoryInfo path)
{
    if(path == null) throw new ArgumentNullException("path");
    var ret = new List<DirectoryInfo>();
    if (path.Parent != null) ret.AddRange(Split(path.Parent));
    ret.Add(path);
    return ret;
}

On the path c:\folder1\folder2\folder3 this returns

c:\

c:\folder1

c:\folder1\folder2

c:\folder1\folder2\folder3

In that order

OR

internal static List<string> Split(this DirectoryInfo path)
{
    if(path == null) throw new ArgumentNullException("path");
    var ret = new List<string>();
    if (path.Parent != null) ret.AddRange(Split(path.Parent));
    ret.Add(path.Name);
    return ret;
}

will return

c:\

folder1

folder2

folder3