9
votes

problème dans l'utilisation de la relève path.combine en C #

    string targetPath = @"C:\Program Files\saadhvi\SetupSafetyPADUniversal\";
    string createDatabasesScriptFilePath = Path.Combine(targetPath, "\\EADBScripts\\CreateDatabases.sql");
i am getting the value of createDatabasesScriptFilePath is \EADBScripts\CreateDatabases.sqlbut i expected it would be C:\Program Files\saadhvi\SetupSafetyPADUniversal\EADBScripts\CreateDatabases.sqlwhat is the wrong with my code?
c#

0 commentaires

4 Réponses :


11
votes

Supprimer le premier \ de la chaîne "\ eadbscripts \ crééatabases.sql"

Je ne suis pas tout à fait sûr de la raison, mais une path I Devina Going.combine veut comme deuxième paramètre un chemin relatif, et un chemin relatif ne commence pas avec un \.


0 commentaires

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

0 commentaires

16
votes

Voici la raison pour laquelle votre code renvoie le 2e chemin (copié de l'aide MSDN) -

Si le chemin2 ne comprend pas une racine (par exemple, si le chemin2 ne commence pas avec un caractère de séparateur ou une spécification d'entraînement), le résultat est une concaténation des deux chemins, avec un caractère séparateur intermédiaire. Si le chemin2 comprend une racine, le chemin2 est retourné.


0 commentaires

2
votes

Retirez la barre oblique inverse des "\ \ eadbscripts ..." dans le deuxième argument.


0 commentaires