왜 Path.comBine은 Drive Dedgedator 이후 Path.DirectorySeparatorchar를 추가하지 않습니까?
-
20-09-2019 - |
문제
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 (String Path1, String Path2)
Path1이 드라이브 참조가 아닌 경우 (즉, "C :"또는 "D :") DirectorySeparatorchar, AltDirectorySeparatorchar 또는 VolumesEparatorchar에 정의 된 유효한 분리기 문자로 끝나지 않으면 DirectorySeparatorchar는 연결 전에 PAR1에 추가됩니다.
제휴하지 않습니다 StackOverflow