如何在Android中获取文件的实际路径?

时间:2017-08-16 20:07:21

标签: java android

我试图获取我在Android Studio项目中创建的数据库的路径。当我对路径进行硬编码时,它工作正常,但我无法获得路径。 实际路径是:

  

/data/data/package.name/databases/database.db

getPath()getDatabasePath()等函数会返回:

  

数据/用户/ 0 / package.name /数据库/ database.db

我得到了:

  

W / System:ClassLoader引用了未知路径:

消息。 我猜那是Uri的位置?如何检索实际路径?

2 个答案:

答案 0 :(得分:0)

你是在传递它的背景吗?代码应该类似于

String path = context.getDatabasePath(DATABASE_NAME).getPath();

其中DATABASE_NAME是数据库的名称,您的上下文应该是您定义的上下文。

答案 1 :(得分:0)

  

但getPath()和getDatabasePath()等函数返回data / user / 0 / package.name / databases / database.db

它返回的是正确的答案,尽管你错过了领先的斜线。

  

实际路径为/data/data/package.name/databases/database.db

仅在某些操作系统版本上,有时仅在应用程序本身之外。 Android支持设备的多个用户;您的应用将看到的路径将取决于用户。

  

我得到:W / System:ClassLoader引用了未知路径:

这是一个随机警告,与此代码无关。

  

如何检索实际路径?

由于这似乎是数据库的路径,因此请使用getDatabasePath()