2010-11-06 13 views
18

प्रलेखन पढ़ने से, यह स्पष्ट है कि File.join दिए गए मानकों को/चरित्र के साथ जोड़ता है।
इसका उपयोग कब किया जा रहा है, filenames.join('/') के विपरीत, फायदेमंद?फ़ाइल.जॉइन उपयोगी कब है?

उत्तर

53

एक और, सूक्ष्म अंतर है:

File.join('foo','bar') 
#=> "foo/bar" 
['foo','bar'].join('/') 
#=> "foo/bar" 

, लेकिन अगर आप पहले से ही (जो अक्सर रास्तों के साथ जब काम कर रहा है) / के साथ समाप्त एक तर्क गुजरती हैं, आप परिणाम में दो स्लैश नहीं होगा :

File.join('foo/','bar') 
#=> "foo/bar" 
['foo/','bar'].join('/') 
#=> "foo//bar" 
+0

उस बारे में सोचा नहीं था, धन्यवाद –

+0

क्या एसओ में कोई बग है या मुझे वास्तव में 5 बार ऊपर उठाया गया है 3 मिनट?! –

+2

कभी-कभी जो आपको लगता है कि आपके सबसे छोटे उत्तर सबसे ऊपर उठते हैं। [यह] (http://stackoverflow.com/questions/1793693/why-would-yaml-be-unavailable-in-production/1793719#1793719) मेरे सबसे ऊपर दिए गए उत्तरों में से एक है। –

14

यह File::SEPARATOR का उपयोग करेगा, जो सिद्धांत में / नहीं होना चाहिए।

+5

असल में, यह विंडोज़ पर भी '/' का उपयोग करता है। चूंकि विंडोज़ पर 'फ़ाइल :: SEPARATOR' "/" है - केवल' फ़ाइल :: ALT_SEPARATOR' "\\" है। – sepp2k

+0

धन्यवाद, @ sepp2k। शायद आपको एक जवाब जोड़ना चाहिए यदि आपको पता है कि उन्होंने उस डिज़ाइन को क्यों चुना है। –

+2

क्या कोई प्लेटफ़ॉर्म रूबी चलता है जहां मान्य फ़ाइल विभाजक नहीं है? –

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