Android 获取SharedReferences文件的文件路径
我正在用android代码创建一个SharedReferences文件。然后我想用我的代码通过电子邮件发送该文件。为此,我需要访问SharedReferences文件的路径。下面是我正在使用的代码。但它似乎不起作用。我可以打开电子邮件,但没有附件,因为我猜它无法获取文件。有人能给我提出解决办法吗Android 获取SharedReferences文件的文件路径,android,Android,我正在用android代码创建一个SharedReferences文件。然后我想用我的代码通过电子邮件发送该文件。为此,我需要访问SharedReferences文件的路径。下面是我正在使用的代码。但它似乎不起作用。我可以打开电子邮件,但没有附件,因为我猜它无法获取文件。有人能给我提出解决办法吗 File f = getDatabasePath("userPrefsFile.xml"); String filelocation=f.getAbsolutePath(); Intent email
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"));
所以SharedReferences文件位于目录中
/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
1同样的问题也与返回的
getFileStreamPath()
方法有关
/data/data/your.package/files
/data/data/your.package/files