web-dev-qa-db-fra.com

Utilisation de / ou \\ pour les chemins de dossier en C #

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).

20
Dominic K

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.

29
Vinko Vrsalovic

Veuillez utiliser Path.DirectorySeparatorChar OR mieux, comme Poita a suggéré d'utiliser Path.Combine .

23
SolutionYogi

Utilisation Path.Combine et vous n'avez pas à vous soucier d'une telle sémantique.

8
Peter Alexander

J'écris des chemins en C # comme ceci:

@ "C:\My\Path"

Le caractère @ désactive\échappement.

6
Eric J.

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.

1
John Saunders