获取sharedpreferences文件的文件路径

时间:2013-04-02 22:07:01

标签: android

我在Android代码中创建了一个sharedpreferences文件。然后我想在我的代码中通过电子邮件发送该文件。为此,我需要访问sharedpreferences文件的路径。我正在使用的代码如下。但它似乎没有用。我可以打开电子邮件,但没有附件,因为我猜它无法获取文件。有人可以在这提出任何解决方案。

File f = getDatabasePath("userPrefsFile.xml");
String filelocation=f.getAbsolutePath();
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("application/xml");
String[] to = {"test@test.com"};
email.putExtra(Intent.EXTRA_EMAIL, to);
email.putExtra(Intent.EXTRA_STREAM,filelocation);
email.putExtra(Intent.EXTRA_SUBJECT,"test file send");
startActivity(Intent.createChooser(email, "Send email"));

1 个答案:

答案 0 :(得分:2)

所以 SharedPreferences 文件位于目录

/data/data/your.package/shared_prefs

所以你需要使用上面的路径。

<强>的伪代码:

File root = new File("/data/data/your.package/shared_prefs");
if (root.isDirectory()) {
   for (File child: root.listFiles()) {
      Toast.makeText(this, child.getPath(), Toast.LENGTH_SHORT).show();
   }
}

您无法使用getDatabasePath()的原因是返回数据库文件夹 1

/data/data/your.package/databases/


1 同样的问题也与返回

getFileStreamPath()方法有关
/data/data/your.package/files