问题是,我无法在Android 4.3上的Cordova 3.0下使用以下代码在Android中创建嵌套目录结构。(相同代码适用于iOs)
var createDirectories = function(directoryArray, currentDir) {
var parent = currentDir;
var create = function(dirs) {
if (dirs.length > 0) {
console.log('Creating dir: ' + parent.fullPath + '/' + dirs[0]);
parent.getDirectory(dirs[0], {create: true, exclusive: false}, function(newDir){
console.log('Directory created: ' + newDir.fullPath);
parent = newDir;
dirs.splice(0, 1);
create(dirs);
}, function(err) {
console.log('Error creating directory. ' + err.code);
console.log(err);
if (FileError.PATH_EXISTS_ERR === err.code) {
console.log('Directory already exists.');
}
});
} else {
console.log('done');
}
};
create(directoryArray);
};
无论我尝试了什么,PATH_EXISTS_ERR的调用都会失败。因此,如果我通过了[图像','测试'],它将创建'图像',但在'测试'中失败。以前有人遇到过这个问题吗?
在iOs上,我得到2个"创建的目录:…"输出如预期。
Arg,似乎有一个"images"文件,或者它至少是安卓系统中的一个特殊名称。在向FileUtils插件添加一些调试时,我发现"images"已经存在,但不是一个目录,并且错误还不够清楚,无法确定这一点。
所以,解决方案是不要在Android上的应用程序文件系统的根目录中使用"镜像"作为新目录。