問題は、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 で失敗します。['images','test'] を渡すと、'images' が作成されますが、'test' で失敗します。誰もが前にこの問題に遭遇しましたか?
iOS では、期待どおりに 2 つの「ディレクトリが作成されました: ...」という出力が得られます。