2014-05-15 9 views
5

मैं बस कोशिश करते हैं और कुछ समझ से बाहर करने के लिए Cordova स्रोत कोड के माध्यम से देख रहा हूँ, और वर्तमान में छह वैकल्पिक तरीकों/गुण किसी फ़ाइल का पथ में पहुंचने देखते हैं।कॉर्डोवा - फाइलसिस्टम - इतने सारे पथ विकल्प क्यों?

वर्तमान में (आईओएस का उपयोग कर चल), वहाँ है:

// Properties 
file.fullPath; // file:///full/path/syntax/file 
file.nativeURL; // file:///full/path/syntax/file 

// Method(s) 
file.toInternalURL(); // formats the file.fullPath into a cdvfile://localhost/persisten/file. 
file.toURL(); // if file.nativeURL is set, uses file.nativeURL, otherwise use file.toInternalURL() or file.fullPath. 

// Deprecated method(s) 
file.toURI(); // deprecated - calls file.toURL(); 
file.toNativeURL() // deprecated - calls file.toURL(); 

मैं समझता हूँ कि दो पदावनत कर रहे हैं - जो file.toURL() करने के लिए दोनों बिंदु - तो मैं उन्हें अनदेखा कर सिर्फ चार तरीकों पर ध्यान केंद्रित कर सकते हैं।

लेकिन file.fullPath और file.nativeURL के बीच क्या अंतर है - वे बिल्कुल वही हैं? वे फ़ाइल ऑब्जेक्ट पर दोनों गुण हैं - सार्वजनिक रूप से सुलभ दोनों। पहले file.nativeURL नहीं करता है, तो यह है कि, तो file.toInternalURL() या कि नाकाम रहने, तो file.fullPath -

जहां तक ​​मेरा बता सकते हैं, file.toURL() इन दोनों का उपयोग करता है।

फिर अंत में, file.toNativeURL() एक cdvfile:// स्वरूपित स्थान देता है।

तो, अधिकांश विधियां file.nativeURL संपत्ति पर इंगित करती हैं। file.toURL() उपयोग करने की विधि है क्योंकि यह सभी उदाहरणों को संभालती है? यदि हां, तो पृथ्वी पर क्या cdvfile:// है?

धन्यवाद

उत्तर

6

file.fullPath कल्पना का एक हिस्सा है, और वास्तव में तरह दिखना चाहिए: /path/relative/to/my/root। यदि आप देख रहे हैं कि इसमें file:/// है, तो यह एक बग है।

file.nativeURL एक कार्यान्वयन विस्तार के लिए है। लेकिन दुख की बात है, यह स्पष्ट रूप से इस तरह के रूप में चिह्नित नहीं है। यह कल्पना का हिस्सा नहीं है, और अन्य प्लेटफॉर्म पर मौजूद नहीं है।

file.toURL() संभवतः आप जो चाहते हैं उसकी संभावना है। यह spec का एक हिस्सा है, आपको एक यूआरएल देता है जिसे resolveLocalFileSystemURL पर पास किया जा सकता है, और cdvfile: यूआरएल की तुलना में कम गॉथस है।

file.toInternalURL() कल्पना का हिस्सा नहीं है, लेकिन यह एक Cordova-विशिष्ट एक्सटेंशन। मुझे नहीं लगता कि यह कभी भी उपयोग करने के लिए एक उपयोगी बात होगी।

+0

धन्यवाद एंड्रयू - जब लिखा, मैं कॉर्डोवा 3.3.0 का उपयोग कर रहा था; मैंने वर्तमान में अपग्रेड नहीं किया है लेकिन मैं करूँगा और पुष्टि करूंगा कि यह अभी भी आईओएस के मामले में है या नहीं। – keldar

संबंधित मुद्दे