2013-10-12 6 views
5

मैं कक्षा के लिए एक प्रोजेक्ट पर काम कर रहा हूं। मुझे क्या करना है फ़ाइल को पार्स किए गए निर्देश निर्यात करना है। माइक्रोसॉफ्ट इस उदाहरण जो बताते हैं एक फ़ाइल पर लिखने के लिए कैसे है:किसी भी कंप्यूटर पर प्रोजेक्ट फ़ोल्डर में फ़ाइल लिखें

// Compose a string that consists of three lines. 
string lines = "First line.\r\nSecond line.\r\nThird line."; 

// Write the string to a file. 
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.txt"); 
file.WriteLine(lines); 

file.Close(); 

मैं उस भाग के साथ ठीक हूँ, लेकिन वहाँ एक रास्ता चालू परियोजना के पर्यावरण/स्थान के लिए फ़ाइल लिखने के लिए है? मैं ऐसा करना चाहता हूं कि एक विशिष्ट पथ को हार्ड कोडिंग करने के बजाय (यानी "C:\\test.txt")।

उत्तर

16

हां, बस एक सापेक्ष पथ का उपयोग करें। यदि आप @".\test.txt" का उपयोग करते हैं (बीटीडब्ल्यू @ बस कहता है कि मैं एक स्ट्रिंग अक्षरशः कर रहा हूं, तो यह बचने वाले चरित्र की आवश्यकता को हटा देता है ताकि आप ".\\test.txt" भी कर सकें और यह उसी स्थान पर लिख सके) यह वर्तमान काम पर फ़ाइल लिखेंगे निर्देशिका जो ज्यादातर मामलों में आपके प्रोग्राम वाले फ़ोल्डर है।

+0

मीट को कॉल करके वह पथ प्राप्त कर सकते हैं। संक्षिप्त एवं सटीक। आपका बहुत बहुत धन्यवाद! – blutuu

8

आप अपने मुख्य असेंबली (.exe) का मार्ग प्राप्त करने के लिए Assembly.GetExecutingAssembly().Location का उपयोग कर सकते हैं। ध्यान दें कि यदि वह पथ संरक्षित फ़ोल्डर के अंदर है (उदाहरण के लिए Program Files) आप तब तक लिखने में सक्षम नहीं होंगे जब तक कि उपयोगकर्ता एक व्यवस्थापक न हो - इस पर भरोसा न करें।

string path = System.Reflection.Assembly.GetExecutingAssembly().Location; 
string fileName = Path.Combine(path, "test.txt"); 

This question/answer दिखाता है, जहां आपके पास लेखन पहुँच होगा उपयोगकर्ता के प्रोफ़ाइल फ़ोल्डर पाने के लिए:

यहाँ नमूना कोड है। वैकल्पिक रूप से, आप फ़ाइलों को सहेजने के लिए उपयोगकर्ता के My Documents फ़ोल्डर का उपयोग कर सकते हैं - फिर से, आपको इसकी पहुंच होने की गारंटी है। आप

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 
संबंधित मुद्दे

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