본문 바로가기

컴터/Air

[Air] canonicalize() - 디렉토리/파일 올바른 경로및 이름 알아올때 유용

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
private function createWindow():void{
                var file:File = File.desktopDirectory;
                var arr:Array = new Array(new FileFilter("*", "*.*"));
                file.browseForOpenMultiple("오픈위치선택", arr);
                file.addEventListener(FileListEvent.SELECT_MULTIPLE, complete);
                file.addEventListener(Event.CANCEL, cancel);
               
               
               
            }
           
            private function complete(evt:FileListEvent):void{
                var file:File = evt.files[0] as File;
                trace("common : " + file.nativePath);
               
                file.canonicalize();
                trace("canonicalize : " + file.nativePath);
            }

디렉토리 이름이 Document ~1처럼 약어 또는 대소문자 확인, 그리고 심볼릭 링크가 걸린 디렉토리 또는 파일의 실제 올바른 경로를 알아올때 유용하다.

위 예제에서 C:\Document ~1\jQ.js 이라는 파일이 있다고 하자
(파일을 선택하지 말고 직접 타이핑을 쳐서 해보면 차이를 더 잘 알수 있다.)
jq.js 라고 타이핑 쳐서 셀렉트 하면,

결과값은

common : C:\Document ~1\jq.js => 보이는데로 출력
canonicalize : C:\Document and Setting\jQ.js => 본래 경로 출력

이렇게 나온다.

    cf)
canonicalize()는 생성을 목적으로 있지도 않은 디렉토리 또는 파일을 미리 File객체로 정의할수 있는데,
이때는 해당 경로에 있는 디렉토리 또는 파일의 경로만 올바르게 표시한다.
C:\Document ~1\jQ.js 에서 jQ.js는 없다고 할때 jq.js를 선택하면
C:\Document and Setting\jq.js 
이렇게 존재하는 것만 바로 잡는다.