var actual = Path.Combine("c:", "filename");
var expected = @"c:\filename";
Assert.AreEqual(expected, actual);
quảTại sao Path.Combine không thêm Path.DirectorySeparatorChar sau bộ định tuyến ổ đĩa?
{Assert.AreEqual failed. Expected:<c:\filename>. Actual:<c:filename>.
Tại sao?
Đây là một tổ chức giao từ DOS 1.x IIRC ... :-) –
Freaky ... đây là unintuitive. Cách để có được giá trị mong đợi là gì? 'Path.Combine (ổ đĩa + @" \ ", đường dẫn)'? – Gishu
@ Gishu - Nó chỉ là không trực quan bởi vì đường dẫn hoạt động trong hệ điều hành Windows không đơn giản như người ta có thể nghĩ. Xem bài viết MSDN mà tôi đã liên kết để tìm mô tả về cách hoạt động của đường dẫn Windows. Path.Combine() kết hợp hai đường dẫn. Tôi sẽ không sử dụng nối chuỗi theo cách bạn đề nghị vì điều đó đánh bại toàn bộ mục đích của Path.Combine(). AFAIC bạn nên cẩn thận theo cách bạn chỉ định đường dẫn của mình. Nếu bạn có nghĩa là "C: \" sử dụng điều đó, nếu OTOH bạn có nghĩa là "C:" (mà là khác nhau nhưng chỉ là hợp lệ) sau đó sử dụng đó. –