Comment contourner la pire méthode de .net ?
Régulièrement, on me dit que je ne suis pas assez critique vis-à-vis de .net. Je suis désolé de contrarier les personnes qui pensent de la sorte. Depuis que j'utilise .net, je ne l'ai jamais regretté. Nous avons là un ensemble de solutions qui évoluent dans le temps pour nous offrir toujours plus de facilité, de productivité, avec un très beau niveau de performance.
Cependant, il existe une méthode qui fait tache dans ce beau tableau :
Path.GetDirectoryName(path);
Cette méthode est un véritable piège.
Comme indiqué dans la documentation, l'appel à Path.GetDirectoryName("C:\MyDir\MySubDir")
retourne "C:\MyDir"
. Il faut un "\"
en fin de string pour que la méthode retourne "C:\MyDir\MySubDir"
.
Concrètement, cette méthode n'est intéressante que pour obtenir le Path vers le répertoire d'un fichier. Que ce soit le nom de la méthode, ou le nom de son argument, tout est trompeur.
Pour vérifier le nom d'un répertoire, j'ai pris l'habitude d'utiliser (on pensera à effectuer un Trim()
sur le path pour éviter les problèmes)
var name = new DirectoryInfo(path).Name;
C'est un peu dommage, mais c'est ainsi.