This is an android issue. A call to File.mkdirs can change the value of Context.getFilesDir. I've stated the problem this way since I haven't investigated all the test cases. I was very surprised by this result and put together a simple test that confirmed this behavior.
String filesDir = context.getFilesDir().getAbsolutePath();
File newFile = new File(context.getFilesDir,"xxx/MyFile.txt");
newFile.getParentFile().mkdirs();
String newFilesDir = context.getFilesDir().getAbsolutePath();
What you'll see is the filesDir and newFilesDir aren't the same. The call to mkdirs changed the location. I'm surprised by this result since the Android documentation doesn't mention this behavior. Anybody out there have a some valid explanation on why that's happening, and how to deal with that. I've been using getFilesDir as the place to store content and I like to organize that content in a directory tree and it looks like you shouldn't be adding directories in the filesDir.