2014-06-10 4 views
0

이와 같은 경로의 용어 (Windows의 경우)가 궁금한가요?Windows의 절대 경로 유형

"\Users\Name\Desktop\1\dest dir1" 

나는 그것이 드라이브의 루트를 참조하는 절대 경로라는 것을 알고 있습니다.

두 번째 질문은 API를 "실제"절대 경로와 구별하는 것입니까? 경로는 다음과 같습니다.

"C:\Users\Name\Desktop\1\dest dir1" 

PS. 나는 분명히 그 샘플 경로와 관련해서뿐만 아니라 일반적으로 요구하고있다.

+1

현재 드라이브가 무엇이든 상대적인 상대 경로이므로 첫 번째 경로는 상대 경로라고합니다. 그것은 실제로 작업 디렉토리에 의존한다는 점에서'.. \ foo'와 다르지 않습니다. –

+0

@RetiredNinja :'PathIsRelative'는 두 경로 모두를 절대 경로로보고합니다. – c00000fd

+3

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#fully_qualified_vs._relative_paths 등 – deviantfan

답변

-1

windows에서 절대 경로는 항상 드라이브의 문자 또는 서버 이름 으로 시작합니다. 상대 경로는 작업중인 현재 위치에서 파생 된 경로이며 "\"로 시작합니다. 또는 그것없이. Detect whether path is absolute or relative

PathIsRelative

:

또한 작업 디렉토리 안에 당신이 당신의 "절대 경로"를 사용하는 경우

그것이 찾고있을 것 "\ 사용자 \ 이름 \ 바탕 화면 \ 1 \ 이명 령 DIR1"

+1

위에 제공된 @deviantfan 링크를 읽으십시오 : _ "\ directory"또는 "\ file.txt"와 같은 단일 백 슬래시. 절대 경로로. "_ http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#fully_qualified_vs._relative_paths – c00000fd

+0

의심의 여지가, 그냥' dir \\'명령 줄에서 ... 현재 작업 디렉토리가 아닙니다. – deviantfan

0

그래서 지금까지 본 것에서 볼 때 WinAPI가없는 상태에서 이렇게해야합니다. 맞습니까?

BOOL IsAbsoluteToDrivePath(LPCTSTR pszPath) 
{ 
    //Checks if the path is absolute to drive 
    //RETURN: 
    //  = TRUE if yes, it is an absolute to the drive path 
    BOOL bRes = FALSE; 

    if(pszPath && 
     pszPath[0]) 
    { 
     //Check first char to be a slash 
     //INFO: Proved experimentally that/and \ may be treated equally... 
     if(pszPath[0] == L'\\' || 
      pszPath[0] == L'/') 
     { 
      //Do we have a 2nd char? 
      if(pszPath[1]) 
      { 
       //Second char should not be a slash 
       if(pszPath[1] != L'\\' && 
        pszPath[1] != L'/') 
       { 
        //Not a slash, then it's an absolute path 
        bRes = TRUE; 
       } 
      } 
      else 
      { 
       //This is a root path (i.e. "\") 
       bRes = TRUE; 
      } 
     } 
    } 

    return bRes; 
}