在c#中使用path.combine语句的问题

时间:2009-08-31 10:27:03

标签: c#

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

我得到的createDatabasesScriptFilePath的值是\ EADBScripts \ CreateDatabases.sql

但我预计会是C:\ Program Files \ saadhvi \ SetupSafetyPADUniversal \ EADBScripts \ CreateDatabases.sql

我的代码出了什么问题?

4 个答案:

答案 0 :(得分:16)

这就是您的代码返回第二条路径(从MSDN帮助中复制)的原因 -

如果path2不包含根(例如,如果path2不以分隔符或驱动器规范开头),则结果是两个路径的串联,以及插入的分隔符。如果path2包含root,则返回path2。

答案 1 :(得分:11)

从字符串“\ EADBScripts \ CreateDatabases.sql”

中删除第一个\

我不完全确定原因,但我想Path.Combine希望第二个参数是相对路径,相对路径不以\开头。

答案 2 :(得分:2)

从第二个参数中的“\ EADBScripts ...”中删除初始反斜杠。

答案 3 :(得分:1)

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