2017-09-26 8 views
0

.에 아래 입력을 제공하는 .Net Core 2의 테스트 케이스가 있습니다. "C :"@C# .net 코어의 Path.GetDirectoryName

+ Path.DirectorySeparatorChar 왜 그렇게

내 테스트 케이스에 Path.GetDirectoryName에 대한 주장, 그것은 윈도우 OS에 대한 null을 반환하지만 리눅스 OS에 대한 C:을 반환? 아무도 내가 여기서 뭘 잘못하고 있는지 설명해 주시겠습니까?

답변

1

Windows의 경우 C:\은 루트 디렉토리입니다. 이름이 없습니다.

Linux의 경우 C:\은 (는) 디렉토리입니다. 이름은 c:이고 상대 경로를 사용했기 때문에 현재 디렉토리의 하위 디렉토리입니다.

Path.DirectorySeparatorChar을 올바르게 사용했기 때문에 제공된 경로가 두 운영 체제에서 작동하지만 Linux에 존재하지 않는 드라이브 지정자 (C :)를 사용하는 것이 문제입니다.

+0

Gotcha, 필자는 그에 맞게 테스트 케이스를 수정했습니다. – Jaydeep