Есть: применить к каждому возвращенному имени папки функцию (статический метод) Path.GetRelativePath и записать результаты в новый массив. Короче всего это записать через LINQ, примерно так:
String[] rel_folder_names = Directory.GetDirectories(RootFolder).Select(s=>Path.GetRelativePath(RootFolder,s)).ToArray();
Но если пока не умеете или боитесь использовать LINQ, то можно это сделать в обычном цикле
String[] full_folder_names=Directory.GetDirectories(RootFolder);
String[] rel_folder_names = new String[](full_folder_names.Length);
for(int i=0;i<full_folder_names.Length;i++) {
rel_folder_names[i]=Path.GetRelativePath(RootFolder,full_folder_names[i]);
}
Как-то так.
PS Весь код написан "из головы", так что ошибки могут быть.