using static System.Console;
using System.Collections.Generic;
PrintParents("/test/sub");
PrintParents("/test/sub/third folder");
PrintParents("/test/sub/third folder/fourth");
PrintParents("/test/sub/third folder/fourth/fifth");
private void PrintParents(string path)
WriteLine($"Parents for: {path}");
foreach(var parent in GetParents(path))
WriteLine("[" + parent + "]");
WriteLine("End of parents");
WriteLine("--------------");
private IEnumerable<string> GetParents(string path)
var splits = path.Split('/');
var result = path == "/" ? new List<string>()
.Select((folder, index) => "/" + string.Join("/", splits, 1, index))
.Take(splits.Count() - 1);