2010-03-11 4 views
2

var fileOpen = 새 OpenFileDialog(); var clickedOk = fileOpen.ShowDialog(); if (! ((bool) clickedOk)) return;DirectoryInfo.Exists에 대한 부울 이해

var path = fileOpen.FileName; 
var diPath = new DirectoryInfo(path); 
var fiPath = new FileInfo(path); 

Debug.WriteLine(diPath.Exists); 

왜이 경우 diPath.Exists가 false인지 궁금합니다. 사용자가 파일을 선택 했으므로 디렉토리가 존재해야합니다! 그리고 그것은 ...

Directory.Exists(fiPath.DirectoryName)을 사용하여 작업을 사용했지만 위의 작업이 효과적이지 않으며 약간의 짜증이 나서 다른 변수가 필요하다는 것을 알고 있다는 것을 알고 있습니다. diPath를 사용할 수 있어야합니다. 거래는 뭐니?

관련 문제에 관해서는 디렉토리 C : \ random \ spot \에 대한 directoryinfo가 있습니다. 왜 그 문자열 "C : \ random \ spot \ here"을 얻을 수있는 방법이없는 것입니까? 부모 "자리"또는 이름 "여기"를 얻으십시오. 어쩌면 내가 뭔가를 놓친 것 같아.

감사합니다,

답변

6

path라는 파일가 있지만 경로라는 디렉토리이 없다.

var diPath = new DirectoryInfo(Path.GetDirectoryName(path)); 

입니다.

1

"경로"에 파일 이름을 포함하면 경로는 디렉토리가 아닌 리프 노드 (파일)가됩니다 (분기 노드). Windows 파일/경로 처리는 이러한 종류의 것들에 대해 아주 문자 그대로입니다.

앞서 언급했듯이 DirectoryInfo 또는 Path.GetDirectoryName()은 경로를 사용하여 작업 할 때 사용할 것입니다.