この命令を使用して、誰でも読み取り可能なファイルを作成しています。
FileOutputStream fos = openFileOutput(filename.toString(), MODE_WORLD_READABLE);
ファイルが作成されます(エミュレータのメモリとファイルが表示されます)が、デバイスで見つかりません!! それはどこにある?
この命令を使用して、誰でも読み取り可能なファイルを作成しています。
FileOutputStream fos = openFileOutput(filename.toString(), MODE_WORLD_READABLE);
ファイルが作成されます(エミュレータのメモリとファイルが表示されます)が、デバイスで見つかりません!! それはどこにある?
In Application's Internal Storage .. デフォルトで/data/data/<package_name>/
このディレクトリを確認してください..
ただし、デバイスがルート化されていない場合、このファイルはDDMS -> FIle-Explorerで見ることができません。
これについては、次を使用してコマンドプロンプトから試すことができますadb shell
アプリケーション内のファイルにアクセスするだけの場合は、
getFilesDir()
内部ファイルが保存されているファイル システム ディレクトリへの絶対パスを取得します。
このファイルは /data/data/com.yourpackagename/files/filename.txt にあり、デバイスがルート化されていない限り非表示になっています。ファイルが作成されたディレクトリからコピーすることで、ファイルにアクセスできます。
コマンドラインから:
ファイルをコピーするには
adb -d shell
run-as com.yourpackagename
cat /data/data/com.yourpackagename/files/filename.txt > /sdcard/filename.txt
または、SQLite データベースの場合
cat /data/data/com.yourpackagename/databases/dbname.db > /sdcard/dbname.sqlite
このソリューションは、デバイスをルート化する必要なく機能します。