我尝试使用Phonegap getFile和createWriter函数在iOS应用程序(phonegap 2.1 + jquerymobile)上编写大文件。
在包含数据JSON的数组的“for”循环中,我有一个“getFile”函数,它在我的fileSystem目录下创建每个文件。 (这是工作) 在我的“getFile”函数中,我调用了一个调用phonegap createWriter函数并写入数组数据文件的成功回调。 (问题在这里)
我的问题是所有文件都包含最后一个数组数据。 如何将好数据提供给每个文件?
我的代码:
fileSystem.root.getDirectory("directory",{create: true},
function(entry){
console.log('getDirectory success');
entry.getDirectory("subdirectory", {create: true},
function(entry){
console.log('subdirectory success');
for(var i=0, len= dataJson.length;i < len ; i++){
data = dataJson[i];
fullPath =data["data_id"]+".txt";
entry.getFile(fullPath, {create: true, exclusive: false},
function(fileEntry){
fileEntry.createWriter(
function(writer){
writer.onwriteend = function(evt) {
console.log("writer end");
};
writer.write(data["data_content"]);
writer.abort();
},
fail);
}
,fail);}
}
},fail);
}
,fail);
感谢您的帮助。
答案 0 :(得分:1)
我解决了我的问题。此代码有效:
fileSystem.root.getDirectory("directory",{create: true},
function(entry){
console.log('getDirectory success');
entry.getDirectory("subdirectory", {create: true},
function(entry){
console.log('subdirectory success');
for(var i=0, len= dataJson.length;i < len ; i++){
data = dataJson[i];
fullPath =data["data_id"]+".txt";
myGetFile(entry,fullPath,data);
}
},fail);
}
,fail);
function myGetFile(entry,fullPath,data){
entry.getFile(fullPath,
{create: true, exclusive: false},
function(fileEntry){
myWriteFile(fileEntry,data);
},
fail);
}
function myWriteFile(fileEntry,data){
fileEntry.createWriter(function(writer){
writer.onwriteend = function(evt) {
console.log("onwriteend");
};
writer.write(data);
writer.abort();
}, fail);
}