c# - फ़ाइल पथ में फ़ॉरवर्ड स्लैश(/) और बैकस्लैश(\) के बीच अंतर




path filepath (5)

Windows स्थानीय फ़ाइल पथ और नेटवर्क पथ के लिए उपयोग किया जाता है:

C:\Windows\Temp\ या \\NetworkSharedDisk\Documents\Archive\

/ क्या मानक यूआरआई द्वारा आवश्यक है:

http://www.stackoverflow.com/

मैं फ़ाइल पथों में \ और / बीच के अंतर के बारे में सोच रहा था। मैंने देखा है कि कभी-कभी एक पथ शामिल होता है / और कभी-कभी यह \ साथ होता है।

यह बहुत अच्छा होगा अगर कोई भी समझा सकता है कि कब और क्या उपयोग करना है।


आपको C # का उपयोग नहीं करना चाहिए। आपको हमेशा Path क्लास का उपयोग करना चाहिए। इसमें Path.Combine नामक एक विधि शामिल है जिसका उपयोग विभाजक को निर्दिष्ट किए बिना पथ बनाने के लिए किया जा सकता है।

उदाहरण का उपयोग:

string fullPath = System.IO.Path.Combine("C:", "Folder1", "Folder2", "file.txt");

यूनिक्स-आधारित सिस्टम पर \ एक एस्केप कैरेक्टर है, अर्थात, पार्सर को बताता है कि यह एक स्पेस है न कि स्टेटमेंट का अंत। यूनिक्स सिस्टम पर / निर्देशिका विभाजक है।

Windows पर निर्देशिका विभाजक है, लेकिन / फ़ाइल या निर्देशिका नामों में उपयोग नहीं किया जा सकता है।


MS-DOS 1.0 ने CP / M से '/' के कमांड लाइन विकल्प (या स्विच) वर्ण सम्मेलन को बनाए रखा। उस समय फ़ाइल सिस्टम में कोई निर्देशिका संरचना नहीं थी और कोई संघर्ष नहीं था।

जब Microsoft ने MS-DOS (और PC-DOS) 2.0 के साथ पर्यावरण की तरह अधिक यूनिक्स विकसित किया, तो उन्हें कुछ अलग का उपयोग करके पथ विभाजक का प्रतिनिधित्व करने की आवश्यकता थी जो मौजूदा कमांड लाइन विकल्पों के साथ संघर्ष नहीं करता था। आंतरिक रूप से, सिस्टम '' / 'या' \ 'के साथ समान रूप से अच्छी तरह से काम करता है। कमांड प्रोसेसर (और कई एप्लिकेशन) स्विच चरित्र के रूप में '/' का उपयोग करना जारी रखता है।

एक CONFIG.SYS प्रविष्टि SWITCHAR=- का उपयोग यूनिक्स संगतता में सुधार के लिए / डिफ़ॉल्ट को ओवरराइड करने के लिए किया जा सकता है। यह कमांड में निर्मित होता है और मानक उपयोगिताओं वैकल्पिक चरित्र का उपयोग करते हैं। यूनिक्स पथ विभाजक तो फ़ाइल और निर्देशिका नामों के लिए स्पष्ट रूप से इस्तेमाल किया जा सकता है। इस प्रविष्टि को बाद के संस्करणों में हटा दिया गया था, लेकिन बूटिंग के बाद मान सेट करने के लिए एक डॉस कॉल को प्रलेखित किया गया था।

यह बहुत कम इस्तेमाल किया गया था और अधिकांश तीसरे पक्ष के उपकरण अपरिवर्तित रहे। भ्रम बना रहता है। यूनिक्स उपकरणों के कई पोर्ट '-' स्विच चरित्र को बनाए रखते हैं जबकि कुछ दोनों सम्मेलनों का समर्थन करते हैं।

फॉलो-ऑन पॉवरशेल कमांड प्रोसेसर कठोर भागने और स्विच मापदंडों को लागू करता है और बड़े पैमाने पर भ्रम से बचा जाता है जहां विरासत उपकरण का उपयोग किया जाता है।

न तो प्रश्न और न ही उत्तर C # से संबंधित है।


  • एक URL, जो RFC 1738 में मानकीकृत है, हमेशा प्लेटफ़ॉर्म की परवाह किए बिना आगे की स्लैश का उपयोग करता है।
  • एक फ़ाइल पथ और एक URI भिन्न हैं। \ Windows फ़ाइल पथ में सही है और / URI में सही है।
  • कई ब्राउज़र (जैसे, फ़ायरफ़ॉक्स और ओपेरा) जब आपस में बैकस्लैश के साथ URI से भिड़ते हैं, तो बहुत ज्यादा असफल हो जाते हैं।
  • System.IO.Path.DirectorySeparatorChar वर्तमान पथ विभाजक पाने के लिए

This प्रासंगिक संसाधन हो सकता है।






slash