Lors de l'écriture de chemins de fichiers en C #, j'ai constaté que je pouvais soit écrire quelque chose comme "C: \" ou "C: /" et obtenir le même chemin. Lequel est recommandé? J'ai entendu quelque part que l'utilisation d'un single/était plus recommandée que l'utilisation de\(avec\comme séquence d'échappement).
Windows prend en charge les deux séparateurs de chemin, donc les deux fonctionneront, au moins pour les chemins locaux (/ ne fonctionnera pas pour les chemins réseau). Le fait est qu'il n'y a aucun avantage réel à utiliser le séparateur de chemin (/) fonctionnel mais non standard sous Windows, en particulier parce que vous pouvez utiliser le littéral de chaîne textuelle:
string path = @"C:\" //Look ma, no escape
Le seul cas où j'ai pu voir un avantage à utiliser le séparateur/est lorsque vous travaillerez avec des chemins relatifs uniquement et utiliserez le code sous Windows et Linux. Vous pouvez alors faire pointer "../foo/bar/baz" vers le même répertoire. Mais même dans ce cas, il vaut mieux laisser l'espace de noms System.IO ( Path.DirectorySeparatorChar , Path.Combine ) pour prendre en charge ces problèmes.
Veuillez utiliser Path.DirectorySeparatorChar OR mieux, comme Poita a suggéré d'utiliser Path.Combine .
Utilisation Path.Combine
et vous n'avez pas à vous soucier d'une telle sémantique.
J'écris des chemins en C # comme ceci:
@ "C:\My\Path"
Le caractère @ désactive\échappement.
Ce n'est pas un problème C # - c'est un problème Windows. Les chemins dans Windows sont normalement affichés avec une barre oblique inverse: C :. À mon avis, c'est ce que vous devez utiliser en C #. Utilisez @ "C: \" pour empêcher une gestion spéciale des caractères de barre oblique inverse.