c# - पथ का उपयोग करने से क्या फायदा है। '+' के साथ समवर्ती तारों पर कोम्बाइन?




concatenation (4)

मुझे अंतर दिखाई नहीं दे रहा है।

Path.Combine पूरी तरह से काम कर रहे स्ट्रिंग Path.Combine से बेहतर क्या कर सकता है?

मुझे लगता है कि यह पृष्ठभूमि में बहुत समान है।

क्या कोई मुझे बता सकता है कि इसे अक्सर क्यों पसंद किया जाता है?


आप डबल पाथ सेपरेटर से बचें। यदि एक पथ तत्व में पहले से ही एक अग्रणी बैकलैश है। Path.Combine उस के लिए जाँच करता है और यह सुनिश्चित करता है कि केवल एक बैकस्लैश मौजूद है।


इस documentation अनुसार, Path.Combine आंतरिक रूप से +-Operator का उपयोग करके एक स्ट्रिंग Path.Combine करता है।

 private static String CombineNoChecks(String path1, String path2) {
        if (path2.Length == 0)
            return path1;

        if (path1.Length == 0)
            return path2;

        if (IsPathRooted(path2))
            return path2;

        char ch = path1[path1.Length - 1];
        if (ch != DirectorySeparatorChar && ch != AltDirectorySeparatorChar && ch != VolumeSeparatorChar) 
            return path1 + DirectorySeparatorCharAsString + path2;
        return path1 + path2;
    }

Path.Combine का उपयोग करता है और यह जाँचता है कि क्या पहले पथ में पहले से ही एक विभाजक है, इसलिए यह विभाजकों की नकल नहीं करेगा। इसके अतिरिक्त, यह जाँचता है कि गठबंधन करने के लिए पथ तत्वों में अमान्य वर्ण हैं या नहीं।


Path.Combine सिर्फ एक स्ट्रिंग Path.Combine तुलना में अधिक चीजें करता है। यदि आप स्रोत कोड को देखते हैं ;

  • Checks दोनों रास्तों में अमान्य वर्ण हैं या नहीं
  • Checks दूसरा पैरामीटर रूट पथ है या नहीं
  • पहले पथ के अंतिम वर्ण की Checks निदेशक या पूरी निर्देशिका या वॉल्यूम विभाजक या नहीं करता है। यदि नहीं, तो दोनों स्ट्रिंग को बीच में डायरेक्ट्री सेपरेटर से अलग करें




concatenation