Tu peux utiliser la méthode FileUtils.GetDisplayName de la librairie Dvp.NET :
string displayName = FileUtils.GetDisplayName(@"c:\Users"); // renvoie "Utilisateurs"
Par contre ça ne renvoie que le nom d'un répertoire, pas le chemin complet. Donc pour obtenir le chemin complet avec les noms d'affichage de chaque dossier, il faut le faire pour chaque niveau du chemin. Par exemple un truc comme ça :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| static string GetDisplayPath(string path)
{
var stack = new Stack<string>();
while (!string.IsNullOrEmpty(path))
{
string parent = Path.GetDirectoryName(path);
string name;
if (string.IsNullOrEmpty(parent)) // on est à la racine du disque
name = path.TrimEnd(Path.DirectorySeparatorChar);
else
name = FileUtils.GetDisplayName(path);
stack.Push(name);
path = parent;
}
return string.Join(Path.DirectorySeparatorChar.ToString(), stack);
} |
Partager