我正在使用此指令创建一个世界可读的文件:
FileOutputStream fos = openFileOutput(filename.toString(), MODE_WORLD_READABLE);
文件被创建(我可以看到模拟器的内存和文件在那里),但我在我的设备上找不到它! 它在哪里?
答案 0 :(得分:2)
在应用程序的内部存储 ..默认情况下/data/data/<package_name>/
检查此目录..
但是如果您的设备是非root用户,那么您无法在 DDMS - &gt;中看到此文件。文件资源管理器强>
为此,您可以使用adb shell
如果您只想访问应用程序中的文件,请使用
getFilesDir()
获取保存内部文件的文件系统目录的绝对路径。
答案 1 :(得分:0)
该文件位于/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
此解决方案无需root设备即可运行。