2009-08-31 10 views
9
string targetPath = @"C:\Program Files\saadhvi\SetupSafetyPADUniversal\"; 
    string createDatabasesScriptFilePath = Path.Combine(targetPath, "\\EADBScripts\\CreateDatabases.sql"); 

Je reçois la valeur de createDatabasesScriptFilePath est \ EADBScripts \ CreateDatabases.sqlà l'aide de la déclaration Path.Combine en C#

mais je pensais que ce serait C: \ Program Files \ saadhvi \ SetupSafetyPADUniversal \ EADBScripts \ CreateDatabases.sql

Quel est le problème avec mon code?

Répondre

11

Retirez le premier \ de la chaîne « \ EADBScripts \ CreateDatabases.sql »

Je ne suis pas complètement sûr de la raison, mais je suppose que Path.Combine veut en tant que second paramètre un chemin relatif, et Le chemin relatif ne commence pas par un \.

1
string targetPath = @"C:\Program Files\saadhvi\SetupSafetyPADUniversal\"; 
string createDatabasesScriptFilePath; 
createDatabasesScriptFilePath= Path.Combine(targetPath, "EADBScripts\\CreateDatabases.sql"); 
+0

Merci pour le fonctionnement – Partha

+0

Pourquoi voter en baisse? commenter s'il vous plaît. – adatapost

16

Voici pourquoi votre code renvoie le 2ème chemin (copié à partir d'aide MSDN) -

Si path2 ne comprend pas une racine (par exemple, si path2 ne commence pas par un caractère de séparation ou une spécification de lecteur), le résultat est une concaténation des deux chemins, avec un caractère séparateur intermédiaire. Si path2 inclut une racine, path2 est renvoyé.

2

Supprimez la barre oblique inverse initiale de "\ EADBScripts ..." dans le deuxième argument.

Questions connexes