2012-06-18 22 views
14

मैं निर्देशिका बनाने के लिए फोनगैप फ़ाइल एपीआई का उपयोग कर रहा हूं और बनाई गई निर्देशिका में एक फाइल बना रहा हूं। निर्देशिका बनाई जा रही है, लेकिन निर्देशिका निर्देशिका में नहीं बनाई जा रही है।फोनगैप फ़ाइल एपीआई का उपयोग कर उस निर्देशिका में निर्देशिका और फ़ाइल कैसे बनाएं?

कोड मैं का उपयोग कर रहा है:

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 

function gotFS(fileSystem) { 
    var dataDir = fileSystem.root.getDirectory("data", {create: true}); 
    var file = dataDir.getFile("lockfile.txt", {create: true, exclusive: true}); 
} 

निर्देशिका डेटा बनाई गई है लेकिन lockfile.txt नहीं बनाया जा रहा है।

उत्तर

27

आप एक async ढंग से कोड कॉल करने की आवश्यकता

var folderName = 'xyz'; 
var fileName; 

function downloadFile(URL) { 
    //step to request a file system 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fileSystemSuccess, fileSystemFail); 

    function fileSystemSuccess(fileSystem) { 
     var download_link = encodeURI(URL); 
     fileName = download_link.substr(download_link.lastIndexOf('/') + 1); //Get filename of URL 
     var directoryEntry = fileSystem.root; // to get root path of directory 
     directoryEntry.getDirectory(folderName, { 
      create: true, 
      exclusive: false 
     }, onDirectorySuccess, onDirectoryFail); // creating folder in sdcard 
     var rootdir = fileSystem.root; 
     var fp = fileSystem.root.toNativeURL(); // Returns Fullpath of local directory 

     fp = fp + "/" + folderName + "/" + fileName; // fullpath and name of the file which we want to give 
     // download function call 
     filetransfer(download_link, fp); 
    } 

    function onDirectorySuccess(parent) { 
     // Directory created successfuly 
    } 

    function onDirectoryFail(error) { 
     //Error while creating directory 
     alert("Unable to create new directory: " + error.code); 

    } 

    function fileSystemFail(evt) { 
     //Unable to access file system 
     alert(evt.target.error.code); 
    } 
} 

function filetransfer(download_link, fp) { 
    var fileTransfer = new FileTransfer(); 
    // File download function with URL and local path 
    fileTransfer.download(download_link, fp, 
     function(entry) { 
      alert("download complete: " + entry.fullPath); 
     }, 
     function(error) { 
      //Download abort errors or download failed errors 
      alert("download error source " + error.source); 
     } 
    ); 
} 
+0

धन्यवाद सिमॉन, महान काम करता है ... – mmathan

+0

तो, क्या वह व्यक्ति जिसने इस जवाब को वोट दिया है, यह बताना चाहता है कि यह उनके लिए क्यों काम नहीं करता है? –

+0

क्या मुझे पता चलेगा कि यह निर्देशिका कहां संग्रहीत की जाएगी? – SSS

0

क्या यह काम है? phonegap

का उपयोग कर

यह 3.0 काम कर रहे और iOS और Android के लिए अप करने के लिए है अपने डिवाइस के लिए यूआरएल से

document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 

function gotFS(fileSystem) { 
    fileSystem.root.getDirectory("data", {create: true}, gotDir); 
} 

function gotDir(dirEntry) { 
    dirEntry.getFile("lockfile.txt", {create: true, exclusive: true}, gotFile); 
} 

function gotFile(fileEntry) { 
    // Do something with fileEntry here 
} 
+0

यह इस नाम के साथ फ़ाइल बनाने के "datalockfile.txt" – Blu

0

डाउनलोड फ़ाइल:

var file = fileSystem.root.getFile("data" + "lockfile.txt", {create: true, exclusive: true}); 
+0

यह मेरे लिए काम है ... –

0
function download(URL, fileName){ 
    var folderName = 'xyz'; 
    var uri = encodeURI(URL); 

     window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, 
      function (fileSystem) { 
       var directoryEntry = fileSystem.root; // to get root path of directory 
       directoryEntry.getDirectory(folderName, { 
        create: true, 
        exclusive: false 
       }, onDirectorySuccess, onDirectoryFail); 
       var filename = fileSystem.root.toURL() + folderName + "/" + uri.substr(uri.lastIndexOf("/") + 1); 

       var fileTransfer = new FileTransfer(); 
       fileTransfer.download(uri, filename, 
        function(entry) { // download success 
         var path = entry.toURL(); //**THIS IS WHAT I NEED** 
         window.plugins.toast.showLongBottom("Download Completed: " + entry.fullPath, function (a) { 
         }, function (b) { 
         }); 
        }, 
        function(error) { 
         console.log("error") 
        } // irrelevant download error 
       );`enter code here` 
      }, 
      function(error) { 
       console.log("error2") 
      } // irrelevant request fileSystem error 
     ); 

     function onDirectorySuccess(parent) { 
      // Directory created successfuly 
      console.log("Directory created successfuly: " + JSON.stringify(parent)); 
      var fp = (parent.nativeURL) + fileName; 
      filetransfer(download_link, fp); 
     } 

     function onDirectoryFail(error) { 
      //Error while creating directory 
      alert("Unable to create new directory: " + error.code); 
     } 
    } 
+0

यह डाउनलोड कोड आईओएस और एंड्रॉइड दोनों के लिए काम करता है कॉर्डोवा 3.4+ के नवीनतम संस्करण के साथ-साथ आयनिक ढांचे के साथ –