2017-04-16 10 views
0

Androidについて、データベースが作成され、アプリケーションの内部ストレージまたはサンドボックスに保存される方法について読んでいます。
SQLiteHelper.execSQL(peopleDB)を呼び出して "people.db"というデータベースを作成したとします。このデータベースファイルパスを取得してTextViewに表示するにはどうすればよいですか?Android - sqliteデータベースファイルへのパスをラベルに表示

明確にするために、データベースの作成方法は問いませんが、データベースファイル "people.db"へのパスを取得する方法は何ですか?

String peopleDB = "people.db"; 

私がやろうとしていますすべては、そのアプリケーションストレージ(またはサンドボックス)があると、デバイス上の私のデータベースの場所を表示するラベルでのショーです。これは個人学習のためのものなので、私はこの情報をユーザーまたはそのようなものに示すことについて心配していません。

答えて

2
File dir = getDatabasePath("people.db"); 
textView1.setText(dir.getAbsolutePath()); 

ファイルエクスプローラアプリには、アプリのプライベート内部ストレージとしてのアクセス権がありません。あなたはcontext.getDatabasePath(DataBaseHelper.dbName)

でパスを取得することができます

+0

ありがとう、それはまさに私が必要としていたものです。とても有難い – pixel

1

あなたは

//data/data/<Your-Application-Package-Name>/databases/<your-database-name> 

が使用DDMSのファイルエクスプローラをディレクトリをエミュレータにナビゲートするという名前の作成したデータベースを、見つけることができます。

+0

に答えています。私は最初のデータに行くことができますが、2番目のデータをクリックすると何も表示されません。 – pixel

+0

ねえ、ありがとう、しかし、それは私が求めていたものではありません。とにかく、非常に感謝します。マークされた答えがわかり、正しいパスが/data/user/0/package-name/databases/people.dbであることが判明しました。しかし、Android StudioのAndroid Device Monitorを使用してこの場所に移動することはできませんので、http://stackoverflow.com/questions/43440253/android-device-monitor-not-showing-content-ofに質問を投稿しました-data-user-where-my-database-is-sto – pixel

1

それはすでに私がそのディレクトリに移動することはできませんここGet database path

関連する問題