Знаю функцию системную SHGetFolderPath, но как ее применить в сишарпе, она там не опазнается.
Лучше избегать WinAPI использовать в коде .NET — это может ограничить поддерживаемые платформы; .NET, в частности, создавалась для большей независимости от изменений WinAPI от версии к версии Windows. (Кроме того, .NET постепенно портируется на другие операционные системы.)