왜 Path.comBine은 Drive Dedgedator 이후 Path.DirectorySeparatorchar를 추가하지 않습니까?

StackOverflow https://stackoverflow.com/questions/1527942

  •  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에 추가됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top