Bon, pas optimisé, mais tu peux faire
 
Code :
 - var pathes = <tachaine>.Split('/');
 - var len = pathes.Length;
 - // pour récupérer le début de la chaîne, il faut reconstruire à partir du tableau, avec un string.Join en remettant le séparateur, et en s'arrêtant au bon moment (ce que fait le TakeWhile)
 - var res1 = string.Join("/", pathes.TakeWhile((x, i) => i != len - 2)); //../../dossier/lala/voila
 - var res2 = pathes[len - 2];//dossier2
 - var res3 = pathes[len - 1];//dossier3
 
  | 
 
 
Quelques contrôles pour être sûr que ta chaîne contient le nombre minimal de "/" serait naturellement nécessaires !
 
Parce que si une de tes chaînes contient "../dossier2", c'est pas pareil.
 
Message édité par deliriumtremens le 17-08-2015 à 11:10:55