상상 너머 그 무언가...

개발단계에서 앱이 설치될 경로에 대한 접근 ( File.applicationDirectory, File.resolvePath ) 본문

개발관련(Development)/플래시(Flash)

개발단계에서 앱이 설치될 경로에 대한 접근 ( File.applicationDirectory, File.resolvePath )

Clack 2012. 11. 19. 15:02

파일객체의 경로를 중심으로 상대경로의 특정 파일에 해당하는 새로운 파일객체 생성하기

var file: File = File.applicationDirectory.resolvePath( fileName );


위 코드에서 File.applicationDirectory 속성값의 리턴값이 File객체이다.

플래시로 만들어진 어플리케이션이 설치된 경로에대한 파일객체가 생성되어져서 리턴되는것이다.


특정파일객체.resolvePath() 메소드는

특정파일객체의 경로값을 기준으로하는 상대경로를 매개변수로 입력하여 추가로 설정된 상대경로에 해당하는 새로운 파일객체를 생성하는 메소드이다.


var file: File = File.applicationDirectory.resolvePath( "img/myPhoto.jpg" );

위와 같이 작성한다면 앱이 설치된 경로에서 img폴더안에 있는 myPhoto.jpg 파일경로에 해당하는 새로운 파일객체를 생성하는 명령이 되는것이다.

applicationDirectory를 사용하는 이유는 앱이 설치되는 경로는 개발하는 단계에서는 알 수가 없기 때문에 절대경로로 파일 경로를 입력해주지 못하기 때문이다. 설치 경로는 사용자가 지정하거나 iOS처럼 OS에서 자동할당해서 설치된다.


내가 개발하는 앱에 폴더나 파일을 pacaging해서 포함시킬 수 있기 때문에 위와 같은 경로로 내가 패키징해둔 파일에 대해 파일객체를 생성해서 사용하거나 내 앱 내부에 새로운 파일을 만들거나 할 때 사용할 수 있다.


파일객체에 대해 nativePath 속성값을 사용하면 생성된 파일객체에 대한 절대경로를 구할 수 있다.

resolvePath로 새로 생성한 해당 파일객체에 대해 nativePath를 사용하면 그 파일에 대한 절대경로를 구할 수 있어서

StageWebView나 다른 파일을 다루는 부분에서 응용해서 사용 할 수 있게 된다.



쉽게 윈도우 컴퓨터를 를 든다면 

네이트온 받은 파일에서 myPhoto.jpg를 접근하고자 할때

네이트온 받은 파일의 절대경로는 사용자의 사용자명에 따라 또는 별도로 설정한 옵션에 따라 경로가 달라지는데

해당 사용자의 내문서 경로를 구해주는 메소드가 있다면 그 메소드로 구한 경로에서부터는 네이트온 받은 파일의 경로를 접근하기는 쉽다.


[내문서 경로구하는 메소드].resolvePath("네이트온 받은 파일/myPhoto.jpg") 이렇게 입력하면 

내 컴퓨터에 있는 myPhoto.jpg에 대해 File객체가 생성되는것이고 이 파일객체에 대해서 nativePath속성값에 접근하면

c:\Users\Clack\My Documents\Docunents\네이트온 받은 파일\ myPhoto.jpg 경로를 구할 수 있는것이다.


[내문서 경로구하는 메소드] 가 c:\Users\Clack\My Documents\Docunents 까지를 알려주므로

개발자는 네이트온 받은 파일\ myPhoto.jpg 경로만 알면 되는것이다.


주의할점 : applicationDirectory는 레퍼런스를 보면 읽기는 하되 새로운 파일 생성이나 파일수정등은 하지 말라고 권고하고 있다.

이 부분은 각 os에 따라 생성 및 수정에 대해서는 차단하는 경우도 있다고 나와있다.

프로그램의 데이터를 저장하러면 applicationDirectory대신 applicationStorageDirectory를 사용하라고 한다.