2012-02-03 24 views
5

जब मैं पथ "सी:" देता हूं तो यह मुझे सीधे एप्लिकेशन फ़ोल्डर में बदल देता है?सी # क्यों पथ "सी:" निर्देशिका है जो मुझे एप्लिकेशन फ़ोल्डर में ले जाता है?

ग:

static void Main(string[] args) 
    { 
     DirectoryInfo dir = new DirectoryInfo("c:"); 
     Console.WriteLine(dir.FullName); 
     Console.ReadLine(); 
    } 

उत्पादन पीछा कर रहा है \ उपयोगकर्ताओं ... \ दस्तावेज \ 2010 \ परियोजनाओं दृश्य स्टूडियो \ consoleApplication9 \ बिन \ डिबग

लेकिन जब मैं देना @"c:\" यह है कि "d:" और @"d:\" डिस्क d: पर ले जाता है के बावजूद डिस्क c: को जाता है।

तो मैं "c:" पहले से

धन्यवाद डिस्क c:

पर ले जाता है यह बताने के लिए एक तरह से की जरूरत है!

+3

क्योंकि है कि कैसे यह 1983 के बाद से काम किया है और यह परिवर्तन के लिए भ्रामक हो जाएगा अब! –

+0

'DirectoryInfo dir = new DirectoryInfo ("c: \\");' या 'DirectoryInfo dir = new DirectoryInfo (@" c: \ ");'। –

+0

मेरे आवेदन के लिए मेरे काम के लिए काम नहीं करता है, मैं सिर्फ अपना प्रश्न संपादित करता हूं .. इसे –

उत्तर

2
static void Main(string[] args) 
    { 
     string YourDir = "c:"; 

     if (!YourDir.Substring(YourDir.Length - 1, 1).Equals(@"\")) 
      YourDir += @"\"; 
     DirectoryInfo dir = new DirectoryInfo(YourDir); 
     Console.WriteLine(dir.FullName); 
     Console.ReadLine(); 
    } 
+0

आप ही मेरी बात प्राप्त करते हैं .. तो मुझे लगता है कि यह सही करने का एकमात्र तरीका है बहुत बहुत धन्यवाद –

+0

आप केवल यही हैं जो मेरा बिंदु प्राप्त कर चुके हैं .. इसलिए मुझे लगता है कि यह सही करने का एकमात्र तरीका है बहुत बहुत धन्यवाद –

+5

@MurHafSoz: यदि बहुत से लोग हैं आपको समझने में नाकाम रहने के लिए, आपको स्वयं को और अधिक स्पष्ट रूप से समझा जाना चाहिए। –

6

सी: बस मात्रा विनिर्देशक है, तो यह है कि मात्रा है, जो आवेदन की कार्यप्रणाली पथ होगा पर अपने वर्तमान पथ के लिए बदल जाएगा।

डी: बस रूट करने के लिए क्योंकि उस मात्रा के लिए अपने वर्तमान फ़ोल्डर जड़ में होने वाला ले जाता है।

+0

देखें, जिसका अर्थ है कि आपको 'सी: \' का उपयोग करना चाहिए जो डिस्क पर पथ को निर्दिष्ट करता है और साथ ही – linkerro

15

बस "c:" का अर्थ है "सी ड्राइव पर वर्तमान निर्देशिका" जबकि @"c:\" का मतलब है "सी ड्राइव की जड़"। यह एक कमांड प्रॉम्प्ट से उसी तरह काम करता ...

0

enter image description here

समय में निम्नलिखित

static void Main(string[] args) 
    {   
     DirectoryInfo dir = new DirectoryInfo(@"c:\"); 
     Console.WriteLine(dir.FullName); 
     Console.ReadLine(); 
    }  

बेस निर्देशिका का उपयोग करें जब आप ग कार्य करें: आवेदन तो नहीं समझती कि यह निर्देशिका को वापस लाता है जहां से एप्लिकेशन लॉन्च/चलाया गया था।

सूचना है कि dir = {।} आप एक शाब्दिक निर्देशिका पथ आप उम्मीद परिणाम प्राप्त होंगे में पारित कर दिया है, तो होता है ..