var actual = Path.Combine("c:", "filename");
var expected = @"c:\filename";
Assert.AreEqual(expected, actual);
結果爲什麼Path.Combine不在驅動器指示符後添加Path.DirectorySeparatorChar?
{Assert.AreEqual failed. Expected:<c:\filename>. Actual:<c:filename>.
爲什麼?
這是從DOS 1.x中IIRC的保持了... :-) – 2009-10-06 20:38:28
辣媽......這是不直觀。獲得預期價值的途徑是什麼? 'Path.Combine(驅動器+ @「\」,路徑)'? – Gishu 2010-04-28 07:25:23
@Gishu - 這只是不直觀的,因爲路徑在Windows操作系統中的工作方式並不像人們想象的那麼簡單。請參閱我鏈接到的MSDN文章以查找有關Windows路徑工作方式的說明。 Path.Combine()結合了兩條路徑。我不會以您建議的方式使用字符串連接,因爲這會破壞Path.Combine()的整個目的。 AFAIC你應該小心你指定路徑的方式。如果你的意思是「C:\」,那麼使用它,如果OTOH是你的意思是「C:」(這是不同的,但同樣有效),那就使用它。 – 2010-04-28 08:22:19