2012-06-08 4 views
0

가능한 중복 :이 통해
Why does GetDirectoryName return null for C:\?GetDirectoryName (@ "C : ")은 null을 반환합니다 - 이유는 무엇입니까?

단계 및 '폴더에'null이됩니다 있습니다. 코어 라이브러리에 C : \를 디렉토리로 가져올 수 있도록하기 위해 추가/추가 할 수있는 항목이 있습니까? 나중에 다른 디렉토리와 결합 할 수 있습니까? 이는 "C : \"가 내가 만난 시스템 요구 사항에 대한 유효한 데이터이기 때문에 중요합니다.

using System.IO; docs에서

string folder = @"C:\"; 
    folder = Path.GetDirectoryName(folder); 
    string folder2 = Path.Combine(folder, "IWantToCombineThisFolderButIGetException"); 

답변

6

:

반환 값

유형 : 경로가 루트 디렉토리를 표시 또는 null의 경우

디렉토리 경로에 대한 정보, 또는 null를 선택 System.String. 당신이 null이 될 수 없습니다해야하는 경우

, 단지 \처럼 원하는 값으로 반환 값을 강제 :

folder = Path.GetDirectoryName(folder) ?? "\\"; 
+0

을 나는뿐만 아니라 '폴더'경로와 함께 사용되는 귀하의 제안을 사용 폴더의 DirectoryInfo.Root. 포인터 주셔서 감사합니다 – JohnZaj

+0

사실 GetFullPath (문자열 경로)는 더 간단합니다. – JohnZaj

관련 문제