Вы можете использовать объект DirectoryInfo, чтобы вывести родителя в нужную цепочку. Если вы хотите получить родительский каталог на три уровня выше, вы можете сделать что-то вроде этого:
DirectoryInfo di = new DirectoryInfo(@"C:\ProgramFiles\Folder1\Folder2\Folder3\Folder4\file.txt");
for(int i = 0; i<3; i++){
di = di.Parent;
}
Очевидно, вы можете изменить способ остановки обхода, чтобы точно удовлетворить ваши потребности. После того, как у вас есть объект DirectoryInfo, где он вам нужен, вы можете делать то, что вам нужно. Я предполагаю, что вам понадобится либо полный путь, либо использовать объект Directory. Чтобы получить полный путь, используйте свойство FullName. Например, если вам нужны все файлы в каталоге, вы можете сделать следующее:
string[] fileNames = Directory.GetFiles(di.FullName);