2014-09-07 1 views
0

OS.File을 사용하여 사용자가 절대 경로 또는 폴더 이름을 입력했는지 탐지하려고합니다.OS.File이 사용자가 폴더 이름 또는 절대 경로를 입력했는지 알아보기 파일

OS.File.split을 사용하고 absolute 속성을 찾고 있습니다. 그러나 윈도우의 경우 이것은 \\blah\\rawr과 같은 것조차도 절대적으로 true를 반환합니다. 그래서 나는 드라이브를 검사하고 있습니다.

절대 경로 또는 폴더 경로인지 테스트하는 좋은 크로스 플랫폼/OS 방법입니까?

var tp = '\\rawr\\rawr\\my new profile' //var typedPath 
var tpSplit = OS.Path.split(tp); //var typedPathSplit 
console.info('tpSplit:', tpSplit); 
var IsAbsolute = 'winIsAbsolute' in OS.Path ? tpSplit.winDrive ? true : false : tpSplit.absolute; 

새 프로필을 만들기위한 것입니다. 사용자가 단지 이름을 입력하면 그 상대 프로필입니다. 사용자가 상대 경로가 아닌 상대 경로를 입력하면 OS.File.makeDir(tp, {from:tpSplit.components[0]}) 디렉토리를 만듭니다. 네 사람이 감사

답변

1

유닉스 절대 경로는 /

function isAbsolute(path){ 
    if("winIsAbsolute" in OS.Path){ 
    return OS.Path.winIsAbsolute(path); 
    } 
    else{ 
    return path[0] == "/"; 
    } 
} 
+0

시작 (I 리눅스에서 리눅스에 문제가 발생하지 않습니다 {from:tpSplit.components[0]}를 희망하고 구성 요소 [0] /home/desktop/new folder 같은 비어) 내가 언급한다는 점에서 문제. 그것은 사용자가 그것을 입력하면'from : tpSplit.components [0]''makeDir'가 실패하기 때문에 문제가됩니다. – Noitidart

+0

@Noitidart 그러면 경로가 절대적인지 아닌지를 찾는 방법이 아니라 (명확성을 위해 내 대답을 편집했습니다) – paa

+0

그 밖의 부분에 대해서는 우리는 단지'path.absolute'에 의지 할 수 없습니다 – Noitidart

관련 문제