2012-12-01 24 views
8

मेरे पास दो एप्लिकेशन हैं जो मैं ब्लैकबेरी पर लोड कर रहा हूं, एक मूल एप्लिकेशन है, दूसरा फ़ोनगैप/कॉर्डोवा आधारित एप्लिकेशन है।फोनगैप/कॉर्डोवा ब्लैकबेरी फाइलसिस्टम.रूट हमेशा एसडी कार्ड देता है?

इन दो आवेदनों एक सेटिंग फ़ाइल साझा: file:///store/home/user/myfile.txt

Cordova के माध्यम से इस फ़ाइल को एक्सेस करने के लिए, मैं फोन:

fileSystem.root.getFile("home/user/myfile.txt", null, gotFileEntry, fail);

हालांकि, कुछ डिवाइस fileSystem.root SDCard निर्देशिका, आंतरिक नहीं देता है पर स्मृति जहां फ़ाइल संग्रहीत है, इसलिए मुझे FileNotFound त्रुटि मिलती है।

मैं fileSystem.root.getParent(gotParent, fail); बुला की कोशिश की है, फाइल सिस्टम की जड़ प्राप्त करने के लिए उम्मीद कर रहा है, तो इसलिए की तरह आंतरिक स्मृति से फ़ाइल प्राप्त करें:

parentDir.getFile("store/home/user/myfile.txt", null, gotFileEntry, fail);

लेकिन है कि या तो काम नहीं करता है, मैं अभी भी प्राप्त एक फ़ाइल त्रुटि नहीं मिली।

फ़ोनगैप/कॉर्डोवा का उपयोग करते हुए, हर बार आंतरिक मेमोरी की मूल निर्देशिका कैसे प्राप्त कर सकता हूं?

उत्तर

4

कॉर्डोवा का कौन सा संस्करण आप उपयोग करते हैं?
कॉर्डोवा File-API ब्लैकबेरी वेबवर्क्स (ओएस 5.0 और उच्चतम) के बाद से समर्थित है।

क्या मैं इस धारणा में सही हूं कि आप केवल उस फ़ाइल को पढ़ना और लिखना चाहते हैं?
यदि ऐसा है तो आप Cordova File-Reader और Cordova File-Writer का उपयोग करने का प्रयास कर सकते हैं।

FileReader

function win(file) { 
    var reader = new FileReader(); 
    reader.onloadend = function(evt) { 
     console.log("read success"); 
     console.log(evt.target.result); 
    }; 
    reader.readAsText(file); 
}; 

var fail = function(evt) { 
    console.log(error.code); 
}; 

entry.file(win, fail); 

FileWriter

function win(writer) { 
    writer.onwrite = function(evt) { 
     console.log("write success"); 
    }; 
    writer.seek(writer.length); 
    writer.write("appended text"); 
}; 

var fail = function(evt) { 
    console.log(error.code); 
}; 

entry.createWriter(win, fail); 

अन्यथा दे कि एक कोशिश झलकी (कोड एक पुराने परियोजना की है लेकिन उस समय काम किया)

<script type="text/javascript" charset="utf-8" src="css-js/phonegap-1.0.0.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// Wait for PhoneGap to load 
// 
document.addEventListener("deviceready", onDeviceReady, false); 

// PhoneGap is ready 
// 
function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 

} 

function gotFS(fileSystem) { 
    var path = "readme.txt"; 
    fileSystem.root.getFile(path, {create: true, exclusive: false}, gotFileEntry, fail); 

} 

function gotFileEntry(fileEntry) { 

    fileEntry.createWriter(gotFileWriter, fail); 
} 

function gotFileWriter(writer) { 
    writer.onwrite = function(evt) { 
     console.log("write success"); 
    }; 
    writer.write("some sample text"); 

मुझे आशा है कि मैं आपकी मदद कर सकता है, सादर F481