Recursive function for listing directories
To relate your parent directories to their children, you could have plist declared like this:

static Dictionary&lt;String, List&lt;String&gt;&gt; plist = new Dictionary&lt;string, List&lt;string&gt;&gt;();


Each time you hit a child folder, you add its name to 

Console.WriteLine("".PadLeft(start * 4, ' ') + item.Name);
string parent = path.Split('\\').Last();
if (!pList.Keys.Contains(parent))
    pList.Add(parent, new List&lt;string&gt;());
pList[parent].Add(item.Name);


Sorry, I don't have access to a C# compiler at the moment so I can't verify this 100%, but it's a starting point at least.

Edit: After thinking about it, I don't think C# likes it if you use [] before an element is in the Dictionary.  I edited the above code to include how to get the parent and included the Console.WriteLine so you know where I would put it.