2013-08-30 10 views
30

मैं एक textbox में इस C:\Users\UserName\Documents\Tasks की तरह कुछ लिखना चाहते हैं:मैं स्ट्रिंग में बैकस्लैश () कैसे लिखूं?

Unrecognized escape sequence.

मैं एक स्ट्रिंग में एक बैकस्लैश कैसे लिख सकता हूँ:

txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\Tasks"; 

मैं त्रुटि मिलती है?

+7

अपनी स्ट्रिंग – Andrew

+0

http://stackoverflow.com/questions/1302864/unrec की शुरुआत में डबल बैकस्लैश \\ या @ डाल दें ognized-escape-sequence-for-path-string-युक्त-बैकस्लैश –

+1

डाउनवोट क्यों ?? –

उत्तर

54

बैकस्लैश ("\") चरित्र एक विशेष भागने ऐसी नई लाइनों के रूप में (\n) अन्य विशेष वर्ण इंगित करने के लिए प्रयोग किया जाता है चरित्र, टैब (\t), या उद्धरण चिह्न (\") है। यदि आप बैकस्लैश चरित्र को स्वयं शामिल करना चाहते हैं, तो आपको दो बैकस्लाश की आवश्यकता है या @ वर्बैटिम स्ट्रिंग का उपयोग करें: "\\Tasks" या @"\Tasks"

MSDN documentation/C# Specification पढ़ें जो बैकस्लैश चरित्र का उपयोग करके बचने वाले वर्णों और वर्बैटिम स्ट्रिंग शब्दशः के उपयोग पर चर्चा करता है।

आम तौर पर बोल, सबसे सी # नेट डेवलपर्स जब फ़ाइल निर्माण फ़ोल्डर पथ @ शब्दशः तार का उपयोग कर/क्योंकि यह उन्हें डबल बैकस्लैश हर समय लिखने के लिए होने से बचाता है के पक्ष में जाते हैं और वे सीधे कॉपी कर सकते हैं/पथ पेस्ट , इसलिए मैं सुझाव दूंगा कि आप ऐसा करने की आदत में आएं।


सभी ने कहा कि, इस मामले में, मैं वास्तव में आप Path.Combine उपयोगिता विधि का उपयोग @lordkain's answer में के रूप में तो जैसा कि आप चाहे बैकस्लैश पहले से ही पथ में शामिल हैं के बारे में चिंता करने की जरूरत नहीं है और गलती से doubling- सिफारिश करेंगे रास्ते के हिस्सों को जोड़ते समय स्लेश को ऊपर या उन्हें पूरी तरह से छोड़ दें।

+1

यह मेरे लिए काम नहीं करता है। @ "\" बस बनाता है "\\" – MattyAB

+3

@ मैटैब: आप परिणामी स्ट्रिंग का निरीक्षण कैसे कर रहे हैं? यदि आप इसे विजुअल स्टूडियो डीबगर में देख रहे हैं, तो यह इसे बचने वाले वर्णों के साथ दिखाएगा। –

1

बस "\\Tasks" का उपयोग कर + द्वारा "\" बचने या @"\Tasks"

+1

मुझे लगता है कि आपको मार्कडाउन द्वारा संक्षिप्त रूप से बदला गया है - बिना 'कोड' बैकटिक से बचने के, ऐसा लगता है कि आपका उत्तर सिर्फ "\ कार्य" था! – StuartLC

2

पिछला उत्तर सही है लेकिन इस विशिष्ट मामले में मैं System.IO.Path.Combine विधि का उपयोग करने की अनुशंसा करता हूं।

आप अधिक विवरण यहाँ पा सकते हैं: http://msdn.microsoft.com/en-us/library/fyy7a5kt.aspx

2
txtPath.Text = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)+"\\\Tasks"; 

एक भी बैकस्लैश के बजाय एक डबल बैकस्लैश रखो ...

+0

... लेकिन एक तिहाई स्लैश नहीं। – StuartLC

4

एक विशेष समारोह इस Path.Combine()

var folder = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 
var fullpath = path.Combine(folder,"Tasks"); 
के लिए बनाया है
संबंधित मुद्दे