var actual = Path.Combine("c:", "filename");
var expected = @"c:\filename";
Assert.AreEqual(expected, actual);
结果
{Assert.AreEqual failed. Expected:<c:\filename>. Actual:<c:filename>.
为什么?
var actual = Path.Combine("c:", "filename");
var expected = @"c:\filename";
Assert.AreEqual(expected, actual);
结果
{Assert.AreEqual failed. Expected:<c:\filename>. Actual:<c:filename>.
为什么?
C:filename
是一个有效的路径和不同于C:\filename
。 C:filename
是文件filename
中的当前目录C:
驱动器,而C:\filename
是文件filename
在该驱动器的根。 显然,他们想保留指的一些驱动器的当前目录的功能。
这种行为被描述这里在MSDN
MSDN似乎并没有解释为什么,但确实对你所看到的提供文件:
Path.Combine(字符串路径1,串路径2)
如果PATH1不是驱动基准(即,“C:”或“d”),并且不具有如DirectorySeparatorChar,AltDirectorySeparatorChar,或VolumeSeparatorChar定义的有效分隔字符结尾,DirectorySeparatorChar被级联之前附加到路径1。