Utiliser / ou \ pour les chemins de dossiers en C#

en écrivant des chemins de fichier en C#, j'ai trouvé que je peux é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 simple / était plus recommandée que l'utilisation de (avec comme une séquence échappée).

18
demandé sur DMan 2010-01-01 08:27:54

5 réponses

Windows supporte 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 problème est qu'il n'y a pas d'avantage réel à utiliser le séparateur de chemin (/) qui fonctionne mais qui n'est pas standard sur Windows, surtout parce que vous pouvez utiliser la chaîne littérale mot à mot:

string path = @"C:\"  //Look ma, no escape

le seul cas où je pourrais voir un avantage d'utiliser le séparateur / est quand vous travaillerez avec des chemins relatifs seulement et utiliserez le code sous Windows et Linux. Ensuite, vous pouvez avoir." ./foo/bar/baz" pointent vers le même répertoire. Mais même dans ce cas, il est préférable de quitter le système.Io namespace (Chemin d'accès.DirectorySeparatorChar,Chemin d'accès.Combiner) pour s'occuper de ces questions.

28
répondu Vinko Vrsalovic 2010-01-01 13:08:51

s'il vous Plaît utiliser Chemin d'accès.DirectorySeparatorChar ou mieux, comme L'a suggéré PoitaChemin d'accès.Combiner.

22
répondu SolutionYogi 2010-01-01 06:33:26

Utiliser Path.Combine et vous n'avez pas besoin de s'inquiéter d'une telle sémantique.

8
répondu Peter Alexander 2010-01-01 05:32:44

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

le @ character éteint \ Escape.

5
répondu Eric J. 2010-01-01 05:29:34

ce n'est pas un problème C# - c'est un problème Windows. Les chemins dans Windows sont normalement affichés avec un antislash: C:. À mon avis, c'est ce que vous devriez utiliser dans C#. Utilisez @ "C:\" pour empêcher la manipulation spéciale des caractères de backlaash.

1
répondu John Saunders 2010-01-01 05:30:13