Project/영어 어플리케이션 개발

첨부된 EngApp.mos SQLite DB를 AppData 폴더에 복사하기

꿈꾸는새벽별 2010. 5. 22. 00:19
 

kr.co.mdsl.data.mosDB.MosSQLite.as

먼저...
Air 빌더의 assets 폴더에 배포할 파일이나 DB를 복사해둔다.
assets/db/EngApp.mos
(영어사전 DB EngApp.mos SQLite DB파일을 넣어두었다.)

우선 배포될 air 어플리케이션을 실행하고 활용할 초기db를
Windows7 사용자는..
C:\Users\mrlayout\AppData\Roaming

Xp사용자는
C:\Documents and Settings\Administrator\Application Data\air프로그램이름\Local Store
에 mosDB란 폴더를 만들어 복사한다.

위 경우는 다른 배포할 파일 또는 프로그램 사용시 업로드할 파일 위치를 지정해 활용하는데 유용하다.

먼저 오리지널 파일의 위치를 지정해 준다.

air FlashBuilder 작업 assets의 위치는 아래와 같다.

   var original:File = File.applicationDirectory.resolvePath("assets/db/EngApp.mos");

오리지널 파일을 복사해 프로그램에서 활용할 SQLite DB 저장위치는 아래와 같다.

   var copyFile:File = File.applicationStorageDirectory.resolvePath("mosDB/EngApp.mos");

그리고 프로그램을 실행할때마다 복사를 실행하면 DB를 활용할 의미가 없어진다...
초기 복사될 위치에 파일이 있는지 없는지를 체크해 없다면 초기 복사를 실행하고..
이미 복사되어 있다면 다음과정으로 진행시킨다.

 if(copyFile.exists == flase){
   original.copyTo(copyFile,true);
 }

그리고 SQLite DB파일이 존재하면 DB접속 프로세스를 실행한다..
   var file:File = File.applicationStorageDirectory.resolvePath("mosDB/"+dbFileName);
  
..............   

//아래는 내문서에 폴더를 만드는 source...
   var dir:File = File.documentsDirectory.resolvePath("mosDB");
   dir.createDirectory();