2016-11-04 5 views
0

경로가 상대 경로 일 수 있으므로 경로가 디렉토리인지, GUID인지 또는 파일인지 확인할 수 있습니다. 그것들은 존재하지 않을 수도 있습니다. 그것은 제가 해결책을 찾기 어렵게 만듭니다.C# 상대 경로가 디렉토리인지 GUID인지 또는 파일인지 확인합니다.

public bool IsDirectory(string path) 
    { 
     var extension = Path.GetExtension(path); 

     return string.IsNullOrEmpty(extension); 
    } 

하지만이 경로는 일반적으로 또한 GUID에 대한 경로가 될 것입니다, 그래서 위의 잘못된됩니다 발견 :

내 이전 솔루션은 경로가 이렇게 같은 확장했다 있는지 확인하는 것이 었습니다.

이 모든 경우를 확인하는 함수를 작성할 수있는 더 좋은 방법이 있습니까?

+3

'다른 사람처럼되지 않습니다 이러한 것들 중 하나 – Jonesopolis

+1

당신은 때때로 당신이 확장하지 않고 단지 GUID가있는 파일 이름을 가진 건가요 체크? 경로가 파일이나 디렉토리 중 하나이기 때문에 Guids가 경로와 어떤 관련이 있는지 명확하지 않습니다. – juharr

+1

이 링크는 도움이 될 수 있습니다 : [http://stackoverflow.com/questions/1395205/better-way-to-check-if-a-path-is-a-file-or-a-directory](http:/) /stackoverflow.com/questions/1395205/better-way-to-check-if-a-path-is-a-file-or-a-directory) – Kymuweb

답변

3

이렇게하면 파일이나 경로가 먼저 있는지 확인합니다. 그렇지 않은 경우 guid로 구문 분석합니다. 경로가 디렉토리, 또는 GUID 또는 file` 인 경우

if(File.Exists(path)) 
{ 
    FileAttributes attr = File.GetAttributes(path); 

    if (attr.HasFlag(FileAttributes.Directory)) 
     MessageBox.Show("Its a directory"); 
    else 
     MessageBox.Show("Its a file"); 
} 
else 
{ 
    Guid guid; 

    if (Guid.TryParse(path, out guid)) 
     MessageBox.Show("Its a Guid"); 
}