2012-03-21 4 views
2

내 응용 프로그램에 안드로이드 SQLiteDatabase를 사용하고 있습니다. 응용 프로그램의 일부는 서버에서 상당량의 데이터를 다운로드하여 전화의 로컬 db에 저장하는 것입니다. 데이터베이스가 전화로 얼마나 많은 공간을 차지할 수 있는지 알아낼 방법이 있습니까? 프로젝트 폴더에서 데이터베이스 관련 파일을 찾을 수 없습니다.안드로이드 : SQLiteDatabase 크기

답변

9

로컬 SQLite 데이터베이스는 Environment.getDataDirectory() + /data/<Package Name>/databases에 저장됩니다. 또한 SQLiteDatabase $ getPath() 메서드를 호출 할 수 있습니다.

SQLiteDatabase db; 
// ... 
long size = new File(db.getPath()).length(); 
+0

어떤 이유로 든 실제 디렉토리를 찾을 수 없지만 위의 코드가 작동했습니다. 나는 100 만 명 정도의 어딘가에있다. 바이트 단위입니까? – Jin

+0

예, length() 메서드는 파일 크기를 바이트 단위로 반환합니다 (파일이 없으면 0). – Vladimir

1

이클립스 이렇게 사용하는 경우 :

  1. 실행 또는 디버그 프로젝트.
  2. 파일 탐색기 창을 엽니 다.
  3. package/databases/(com.blabblah.appname/databases /) 폴더를 찾을 때까지 주/데이터 디렉토리를 아래로 스크롤하십시오.

데이터베이스가이 디렉토리에 표시됩니다. 휴대 전화에서 DB를 가져 오려면 파일 탐색기 창의 맨 위에있는 버튼을 사용하고, 첫 번째 버튼은 장치에서 파일을 가져오고 두 번째 버튼은 장치에 파일을 넣을 수있게하며 마지막 버튼은 파일을 삭제합니다 선택된 파일

나는이 점에서 내 응용 프로그램에서 내 DB를 움켜 쥐고 SQLite 클라이언트에서 "오프라인"테스트를 수행하는데, 매우 편리합니다.

희망이 있습니다.

+0

고마워요. 웬일인지 나는 실제 데이터베이스 또는 데이터 디렉토리를 찾을 수 없었다. (내 Eclipse 프로젝트 폴더와 어디에도 찾아 볼 수 없었다.) 나는 workspace/project_name/*을보고있다. 어떤 다른 생각이있을 수 있습니까? – Jin

+0

잘못된 창을 사용하고 있습니다. 아마도 파일 탐색기가 아닌 프로젝트 탐색기를 사용하고있을 것입니다. 프로젝트 탐색기는 패키지 폴더를 보여 주며 패키지가 데이터를 저장하는 로컬 폴더를 표시하지 않습니다.이 경우, 위에서 언급 한 바와 같이 파일 탐색기를 사용해야합니다 :) 또한, DB, data/package/databases 폴더가 아닐 것입니다. 명백한 것처럼 보입니다. 그러나 DB가 성공적으로 생성되고 있는지 확인하십시오 (Eclipse에서 올바른 창으로 만들 때). – AutoM8R