这是一个安卓问题。调用 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/