Android中缓存目录的名称问题

问题描述 投票:0回答:2

在我的应用中,我将临时文件保存到我的应用缓存文件夹中。我通过这种方法获取缓存目录的名称:

context.getCacheDir();

它返回给我这样的路径:/data/user/0/my.app.packagename但是后来当我试图通过这个方法获取我的缓存文件的父目录的名称 - file.getParent();我正在获得完全不同的缓存目录路径,在我的例子中:/data/data/my.app-packagename

所以我只是想知道为什么会这样,为什么getParent()不会像context.getCacheDir()那样回归路径?

java android caching android-file
2个回答
3
投票

行为是正确的,技术上是相同的。如果您通过adb shell连接到Android设备并进入/ data / user /并运行'll'命令,您将看到文件夹0只是/ data / data /的符号链接。

root@android:/data/user # ll
lrwxrwxrwx root     root              1970-01-01 01:00 0 -> /data/data/

如果您不知道这意味着什么,请阅读qazxsw poi。

所以没有问题,你可以相信它们是相同的android。


0
投票

今天这种行为使我很困惑。这是我的50美分,为此带来光明:

  1. 我已经开始使用Android 8.1的模拟器了
  2. 我通过USB连接了我的Android 9设备

之后我启动了Android-Studio并打开了Device File Explorer。

现在奇怪的事情发生了

  • 在Android 8.1上,您会看到结构/data/user/0/com.myApp/
  • 在Android 9上没有目录/数据/用户(并且没有通过android-studio可见的符号链接)

但是,内部路径似乎是相同的(即使在Android工作室中没有可见的符号链接)。

我使用RNFetchBlob(React本地包来读取文件),如果我从symbolic links输出结果,结果是/ data / user / 0 / ....即使在Android 9上这个目录也不存在。但我试了一下,输出了将在此目录中找到的所有文件,并带有以下命令:

RNFetchBlob.fs.dirs.CacheDir

...并且发现这输出了我之前缓存过的所有文件。

如果有人知道某些文档为什么Android 9中存在这种行为,请发表评论并指出我们。

© www.soinside.com 2019 - 2024. All rights reserved.