2009-09-11 5 views

Répondre

10

Vous devez saisir le résultat de la Replace (les chaînes sont immuables), et vous assurer d'utiliser de caractères pour échapper à la \:

string path = Directory.GetCurrentDirectory(); 
path = path.Replace("\\", "/"); 

Pour info; la plupart des méthodes intégrées accepteront soit, et en supposant que vous êtes sur Windows, \ serait plus commun de toute façon. Si vous voulez un uri, puis utilisez un Uri:

string path = Directory.GetCurrentDirectory(); 
Uri uri = new Uri(path); // displays as "file:///C:/Users/mgravell/AppData/Local/Temporary Projects/ConsoleApplication1/bin/Debug" 
string abs = uri.AbsolutePath; // "C:/Users/mgravell/AppData/Local/Temporary%20Projects/ConsoleApplication1/bin/Debug" 
+0

Vous avez besoin de sitePath = sitePath.Replace ("\\", "/"); comme .Remplacer createa une nouvelle instance – JDunkerley

+0

Je pense que vous devez faire ce qui suit: sitePath = sitePath.Replace ("\\", "/"); C'est ce que Marc veut dire quand il dit que les chaînes sont immuables, appeler une fonction ne change pas la valeur de la chaîne, la fonction renvoie une nouvelle chaîne. –

+0

Merci beaucoup. Il me manquait le point que String sont immuables. – kobra

1

Ceci est peu lié, mais je tiens à le mentionner quand je vois le caractère \ utilisé; juste au cas où certains ne le savent pas.

Notez que C# a un caractère d'échappement de syntaxe, le symbole @. Vous pouvez l'utiliser pour échapper des mots réservés, mais le plus souvent, vous l'utiliserez pour échapper à des séquences d'échappement littérales. Par exemple, si vous allez utiliser le caractère \ dans un littéral et que vous ne voulez pas lui échapper avec un autre \, vous pouvez préfixer le littéral avec @. Ainsi, le code ci-dessus pourrait être écrit comme:

 
path = path.Replace(@"\", "/") 

Je trouve cela très utile lorsque vous travaillez avec des chemins de fichiers:

 
var path = "C:\\Documents and Settings\\My Documents\\SomeFile.txt"; 

peut être écrit comme:

 
var path = @"C:\Documents and Settings\My Documents\SomeFile.txt"; 

Il aide à la lisibilité .

Questions connexes