Android File.mkdirs 更改 Context.getFilesDir

标签 android file mkdirs

这是一个安卓问题。调用 File.mkdirs 可以更改 Context.getFilesDir 的值。因为我没有调查所有的测试用例,所以我以这种方式陈述了问题。我对这个结果感到非常惊讶,并组织了一个简单的测试来确认这种行为。

String filesDir = context.getFilesDir().getAbsolutePath();
File newFile = new File(context.getFilesDir,"xxx/MyFile.txt");
newFile.getParentFile().mkdirs();
String newFilesDir = context.getFilesDir().getAbsolutePath();

您会看到 filesDir 和 newFilesDir 不同。对 mkdirs 的调用改变了位置。我对这个结果感到惊讶,因为 Android 文档没有提到这个行为。任何人都对为什么会发生这种情况以及如何处理它有一些有效的解释。我一直在使用 getFilesDir 作为存储内容的地方,我喜欢在目录树中组织这些内容,看起来你不应该在 filesDir 中添加目录。

最佳答案

通过 getFilesDir()mkdirs() 命令在您的应用程序目录中创建一个子目录是完全没问题的。在这里了解更多:https://developer.android.com/training/data-storage/files

关于Android File.mkdirs 更改 Context.getFilesDir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56918813/

相关文章:

android - 如何让我的应用不支持平板电脑

java - Realm 图像存储互操作性 Android iOS (Swift/Java)

c++ - 将 unicode 字符/字符串写入文件

android - 删除文件夹后 mkdir() 返回 false

安卓 native SIP DTMF

java - 无法在 volley 中访问 StringRequest 之外的响应

c - 在 Windows 中获取文件大小并设置搜索指针

perl - 如何将文件夹中的文件名收集到列表中?

Java 生成目录但不生成文件

java - Android MKDirs() 不适合我 - 不是外部存储