如何在android中从我的应用程序文件夹中检索文件?
我想通过电子邮件发送我的应用程序的数据库文件。这使得在错误情况下更容易提供帮助。为此,我需要检索我的应用程序的安装文件夹。我如何才能做到这一点,以便我可以发送我的数据库,该数据库位于APP-FOLDER\databases\mydb.db如何在android中从我的应用程序文件夹中检索文件?,android,Android,我想通过电子邮件发送我的应用程序的数据库文件。这使得在错误情况下更容易提供帮助。为此,我需要检索我的应用程序的安装文件夹。我如何才能做到这一点,以便我可以发送我的数据库,该数据库位于APP-FOLDER\databases\mydb.db 谢谢希望,您正在询问有关战略或从何处着手的问题 有几种方法可以遵循 1) 将您的db文件保存到SD卡中,然后您就可以使用它进行邮寄了。您可以通过使用SQLiteDatabase.openOrCreateDatabase(String,SQLiteDatabas
谢谢希望,您正在询问有关战略或从何处着手的问题 有几种方法可以遵循 1) 将您的db文件保存到SD卡中,然后您就可以使用它进行邮寄了。您可以通过使用
SQLiteDatabase.openOrCreateDatabase(String,SQLiteDatabase.CursorFactory)
并将“/sdcard/yrdatabase.db”
作为第一个参数来实现这一点
2) 如果不将其保存到SD卡,则只需将db文件移动到SD卡即可。您可以通过使用以下代码来实现这一点。(即,将以下功能绑定到您的按钮上,或从应用程序中调用)
一旦您访问完
db
文件,您就可以使用邮件功能进一步使用它。朋友,有很多代码可以执行此操作,只需进行适当的谷歌搜索,您就可以获得代码。我不会在这里问问题,之前没有搜索过!!感谢您的回复,想想当应用程序被移动到SD卡时会发生什么?那么这就行不通了,或者?当应用程序移动时,Google Doc说:“.apk文件保存在外部存储器上,但所有私人用户数据、数据库、优化的.dex文件和提取的本机代码都保存在内部设备存储器上。”有关更多详细信息,您可以参考此链接。我的荣幸。如果有帮助,你可以接受这个答案。
public void copyDBToSDCard() {
try {
InputStream myInput = new FileInputStream("/data/data/com.yrproject/databases/"+DATABASE_NAME);
File file = new File(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
if (!file.exists()){
try {
file.createNewFile();
} catch (IOException e) {
Log.i("TAG","File creation failed for " + file);
}
}
OutputStream myOutput = new FileOutputStream(Environment.getExternalStorageDirectory().getPath()+"/"+DATABASE_NAME);
byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer))>0){
myOutput.write(buffer, 0, length);
}
//Close the streams
myOutput.flush();
myOutput.close();
myInput.close();
Log.i("TAG","copied");
} catch (Exception e) {
Log.i("TAG","exception="+e);
}
}