我的代码在模拟器中运行,但在 Android 上崩溃,FileNotFoundException
因为它试图FileSystemStorage#openOutputStream
在一个不存在的目录中。我在使用之前递归地创建所有需要的目录
private void ensureParentDirs(String file) {
final int j = file.lastIndexOf("/");
final String s = file.substring(0, j);
if (storage.isDirectory(s)) return;
storage.mkdir(s);
if (storage.isDirectory(s)) return;
ensureParentDirs(s);
storage.mkdir(s);
if (storage.isDirectory(s)) return;
Log.p("Cannot create directory: " + s);
}
这应该像new File(file).getParentFile().mkdirs()
. 它可能是错误的,但它也不应该在模拟器中运行,所以我称之为错误。
我收到消息
Cannot create directory:
file:///data/user/0/my.package.name/files//dump/000/abcd
但已成功创建父目录(“000”)。使用adb shell
,我可以使用创建目录
mkdir /data/data/my.package.name/files/dump/000/abcd
所以我看不出有什么问题。任何想法?