See the question and my original answer on StackOverflow

A simple loop like that:

foreach (var dir in new DirectoryInfo(@"c:\users\smo").GetDirectories())
{
    .... 
}

should return all folders in c:\users\smo.

As a side, note, a folder can't be a reparse point. A reparse point is some optional binary data associated with a file or folder. That data has a type ("tag") that indicates what to do with this extra information. One type of reparse point is a "mount point", used for the mounted folders feature. There are also NTFS symbolic links that use reparse points. I think you were talking about symbolic links here.