1
 var storePath = ConfigurationManager.AppSettings[configKey]; 
 var dbpath=dbpath.replace("/","\\")
 var fullFilePath = Path.Combine(storePath, dbpath);

存储在 Config Key 中的值 -->d:\Storage\ResourceStorage

来自数据库的值: dbpath :LearnerAnswers\test.pkg

预期输出: d:\Storage\ResourceStorage\LearnerAnswers\test.pkg

实际输出: D:\LearnerAnswers\test.pkg

更新了问题以反映确切的情况

来自调试器的存储路径值: d:\Storage\ResourceStorage

我在这上面花了很多时间..但是找不到问题所在?

4

2 回答 2

3

是否DBPath"\\"?

Path.Combine如果您的第二个变量以"\\"or开头,则假定您想要根目录@"\"

Path.Combine("C:\\test", "\\NewFolder")返回"c:\\NewFolder"

Path.Combine("C:\\test", "NewFolder")返回"c:\\test\\NewFolder"

于 2018-11-20T21:01:51.567 回答
0

我已经检查了您在问题中提供的示例路径,并且得到了完全预期的输出。

var storePath = @"d:\Storage\ResourceStorage"; 
var dbpath = @"LearnerAnswers\test.pkg"; 
var fullFilePath = Path.Combine(storePath, dbpath);

一定有别的地方不对劲。请在单步模式下使用调试器并验证每个值。

以下原始答案是由于最初问题中提供的信息无效。

您需要在此处引用反斜杠或使用@

var storePath = "d:\Storage\ResourceStorage";

因此,请使用以下方法之一:

var storePath = @"d:\Storage\ResourceStorage";
var storePath = "d:\\Storage\\ResourceStorage";

于 2016-05-27T08:52:06.290 回答