'getDirectoryListing'에 해당되는 글 1건

  1. 2008.12.09 대상 디렉토리 내용 읽어오기
AIR/파일시스템 연동2008. 12. 9. 16:43

앞서 AIR의 File이라는 클래스를 통해 로컬디렉토리에 접근하는 방법을 공부하였다. 이번에는 File로 특정 디렉토리로 접근하여 대상 디렉토리에 존재하는 파일과 폴더정보를 읽어 오는 getDirectoryListingAsync()getDirectoryListing()를 살펴보도록 한다. 이 둘의 기능은 똑같지만 차이가 있다면 비동기 방식과 동기 방식밖에는 차이가 나질 않는다.

비동기식으로 대상 디렉토리의 내용을 읽어 올 때는 항상 FileListEvent.DIRECTORY_LISTING이벤트를 사용하여 이벤트의 files라는 속성으로 접근하여야 하는 점을 유의한다
동기식일 때는 try catch를 적절하게 사용하여야 하며 무비가 끊기지(멈추지) 않도록 신경을 써서 처리하여야 한다.

아래 코드는 윈도우 OS의 내문서 폴더에 있는 내용을 비동기식으로 읽어오는 테스트이다.
var documentDirectoryList:File = File.documentsDirectory;
documentDirectoryList.addEventListener( FileListEvent.DIRECTORY_LISTING , result );
documentDirectoryList.getDirectoryListingAsync()

function result( e:FileListEvent ):void
{
    for( var atrb:String in e.files  ){
     //내문서의 폴더와 파일 경로 읽어오기
     trace( atrb + "  : " + e.files[atrb].url)
    }
}

결과는 좀 지저분하지만 몇개 적는다면 아래와 같이 URL scheme로 출력해 보았다
0  : file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/2%ed%8c%80_1%ed%8c%8c%ed%8a%b8_%ec%a3%bc%ea%b0%84%eb%b3%b4%ea%b3%a0_%ec%8a%a4%ec%bc%b8%ec%a5%b4(081204).xls
1  : file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/AIR%20%ec%9d%b8%ec%a6%9d
2  : file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/createDirectory
3  : file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/DB.db3
4  : file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Downloads
5  : file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/dxva_sig.txt
......

출력 결과물 0번과 1번의 초록색 부분을 보면 제일 뒤에 심하게 깨져(인코딩 되어)있는 것을 볼 수 있다. 이것은 한글 이름으로 정의된 폴더와 파일 이름이다.
Posted by 버터백통