2012-10-08 4 views
0

PhoneGap getFile 및 createWriter 함수를 사용하여 iOS 앱 (phonegap 2.1 + jquerymobile)에 거대한 파일을 작성하려고합니다.Phonegap 2.1 iOS : 배열 루프에서 createWriter로 큰 파일을 작성하는 방법

데이터 JSON이 포함 된 배열의 "for"루프에서 필자는 내 fileSystem 디렉토리에서 각 파일을 만드는 "getFile"함수를 가지고 있습니다. (그게) "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); 

당신의 도움에 감사드립니다.

답변

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); 
    } 
+0

당신이 http://stackoverflow.com/questions/16162652/facing-issue-writing-file-in-a 루프에서 여러 파일을 쓰기 위해 나에게 내 기능에 도움을 제안시겠습니까 -loop-using-javascript – user366584

관련 문제