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

08-05 01:18