AIR에는 FileReference를 상속받은 File()이라는 클래스가 있다.
File클래스의 주된 기능은 로컬의 디렉토리나 파일로 접근하여 데이터를 읽어 오거나 디렉토리 생성 삭제, 파일 생성 삭제 등 File 시스템 작업을 하는 클래스 이다.

File에는 몇 가지 디렉토리로 접근하는 경로가 상수로 잡혀있다.
File.userDirectory: 사용자 계정의 폴더경로
File.applicationDirectory : AIR어플리케리션 파일이 있는 경로(읽기만 가능)
File.applicationStorageDirectory : AIR어플리케이션 storage 경로(읽기와 쓰기가 가능)
File.desktopDirectory : 바탕화면 경로(읽기와 쓰기가 가능)
File.documentsDirectory : 내문서 경로(읽기와 쓰기가 가능)


위와 같은 기본 경로를 토대로 resolvePath()를 사용하여 경로를 완성한다.

* 하위 경로를 설정하는 resolvePath( path:String ) 메서드
resolvePath( )의 path에 문자열로 하위 폴더나 또는 접근하고자 하는 파일을 설정하면 해당 파일이나 폴더로 접근이 가능하다. 가령 윈도우OS의 내문서 폴더로 접근하려면 File.documentsDirectory 까지만 사용하면 되지만 내문서에 "My Folder"라는 폴더로 접근하고자 할 때는 resolvePath()를 사용하여 File.documentsDirectory.resolvePath("My Folder")라고 하위 디렉토리 명까지 적어 주어야 한다. 물론 파일에도 접근이 가능하다. 만약 My Folder에 sys.txt파일로 접근하여 데이터를 가져오고자 한다면
File.documentsDirectory.resolvePath("My Folder/sys.txt")라고 적어준다. 또한 한 단계 상위로 이동하고자 할때는 "../" 또는 ".."을 사용하면 현재위치에서 한 단계 상위 폴더로 이동한다.

* 현재 위치를 확인하는 nativePath 속성과 url속성
현재 위치를 알고 싶을 때는 nativePath속성을 사용한다. nativePath는 현재 File의 지점이 어디인지를 확인할 수 있도록 자세한 경로를 나타낸다.
가령 var myDoc:File = File.documentsDirectory.resolvePath("My Folder");
trace( myDoc.nativePath )
trace결과는 "C:\Documents and Settings\Administrator\My Documents\My Folder"라고 출력을 한다. 위의 경로에서 "C:\Documents and Settings\Administrator\My Documents"까지가 File.documentsDirectory에서 기본 제공하는 경로이며 resolvePath("My Folder") 에 의하여 내문서 폴더안에 "My Folder"라는 이름의 디렉토리까지 접근이 가능하다.

또한 비슷한 형태로 URL 스키마로 표현하는 url이라는 속성이 있다. 이 속성으로 추출된 값은 URL경로로 사용이 가능하다. 아래 테스트 결과(URL scheme)에 마우스 오버하면 링크가 걸린다는 사실을 확인할 수 있다.
trace( myDoc.url)를 출력하면 결과는 다음과 같다.
"file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/My%20Folder"






신고
Posted by 정윤수 버터백통