[英]Path.Combine() is not working as expected
var storePath = ConfigurationManager.AppSettings[configKey];
var dbpath=dbpath.replace("/","\\")
var fullFilePath = Path.Combine(storePath, dbpath);
存储在配置密钥-> d:\\Storage\\ResourceStorage
数据库中的值: dbpath: LearnerAnswers\\test.pkg
预期输出: d:\\Storage\\ResourceStorage\\LearnerAnswers\\test.pkg
实际输出: D:\\LearnerAnswers\\test.pkg
更新了问题以反映确切的情况
调试器的存储路径值: d:\\Storage\\ResourceStorage
我花了很多时间。.但是找不到什么地方出了问题吗?
我已经检查了您在问题中给出的示例路径,并且得到了预期的输出。
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";
DBPath
是否以"\\\\"
开头?
如果第二个变量以"\\\\"
或@"\\"
开头,则Path.Combine
假定您需要根目录
Path.Combine("C:\\\\test", "\\\\NewFolder")
返回"c:\\\\NewFolder"
Path.Combine("C:\\\\test", "NewFolder")
返回"c:\\\\test\\\\NewFolder"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.