दिलचस्प पोस्ट
SQL सर्वर क्वेरी – DISTINCT के साथ COUNT (*) का चयन करना NuGet के माध्यम से पैकेज का एक पुराने संस्करण कैसे स्थापित करें? सुपर क्लास से उपवर्ग विधि को कॉल करना UTF-8 एन्कोडेड डेटा को सर्वर पर कुछ वर्ण खो देता है मैं जार के अंदर एक कॉन्फ़िग फाइल कैसे प्राप्त करूं? तालिका-डेटा से तालिका-नाम प्राप्त करें, LINQ DataContext संख्यात्मक शब्दशः पर यूएलएल प्रत्यय प्लस चिन्ह का उपयोग करते समय कितने स्ट्रिंग ऑब्जेक्ट बनाए जाएंगे? CertPathValidatorException: प्रमाणपत्र पथ के लिए ट्रस्ट एंकर नहीं मिला – एंड्रॉइड रिस्ट्रॉफ़्ट php mysql bind-param, कैसे अद्यतन क्वेरी के लिए बयान तैयार करने के लिए TextArea को आउटपुट स्ट्रीम कैसे सेट करें आईफोन कोर डेटा "स्वचालित लाइटवेट माइग्रेशन" सी # एक्सएमएल टिप्पणियों से उत्पन्न प्रलेखन कैसे सी # के साथ एक फ़ाइल को लॉक करने के लिए? सिवाय इसके अलावा: और पायथन के रूप में अपवाद को छोड़कर अंतर:

सी # में संबंधित पथ में फ़ाइलों को कैसे प्राप्त करें

अगर मेरे पास एप। एक्सई नामक एक निष्पादन योग्य है, जो कि मैं सी # में कोडिंग कर रहा हूं, तो मुझे एप। एक्सएक्स के रूप में उसी निर्देशिका में लोड किए गए फ़ोल्डर से फाइल कैसे मिलनी चाहिए, जो सापेक्ष पथ का उपयोग कर रही है?

इससे पथ अपवाद में एक अवैध वर्ण फेंकता है:

string [ ] files = Directory.GetFiles ( "\\Archive\\*.zip" ); 

सी # में यह कैसे होगा?

Solutions Collecting From Web of "सी # में संबंधित पथ में फ़ाइलों को कैसे प्राप्त करें"

यह सुनिश्चित करने के लिए कि आपके पास एप्लिकेशन का पथ है (और न सिर्फ वर्तमान निर्देशिका), इसका उपयोग करें:

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.getcurrentprocess.aspx

अब आपके पास एक Process ऑब्जेक्ट है जो चल रही प्रक्रिया को दर्शाता है।

फिर प्रक्रिया का उपयोग करें। मुख्य Process.MainModule.FileName :

http://msdn.microsoft.com/en-us/library/system.diagnostics.processmodule.filename.aspx

अंत में,। Exe युक्त फ़ोल्डर प्राप्त करने के लिए Path.GetDirectoryName का उपयोग करें:

http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx

तो यह वही है जो आप चाहते हैं:

 string folder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Archive\"; string filter = "*.zip"; string[] files = Directory.GetFiles(folder, filter); 

(ध्यान दें कि आपके प्रश्न से "\Archive\" अब @"\Archive\" : आपको @ की आवश्यकता है ताकि \ backslashes को किसी एस्केप अनुक्रम की शुरुआत के रूप में नहीं समझाया गया हो)

उम्मीद है की वो मदद करदे!

 string currentDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); string archiveFolder = Path.Combine(currentDirectory, "archive"); string[] files = Directory.GetFiles(archiveFolder, "*.zip"); 

पहला पैरामीटर पथ है। दूसरा खोज पैटर्न है जिसे आप उपयोग करना चाहते हैं।

इसे इस तरह लिखें:

 string[] files = Directory.GetFiles(@".\Archive", "*.zip"); 

। फ़ोल्डर के सापेक्ष है जहां आपने अपने exe को प्रारंभ किया था, और @ नाम पर अनुमति देने के लिए।

फ़िल्टर का उपयोग करते समय, आप इसे दूसरे पैरामीटर के रूप में पास करते हैं यदि आप पैटर्न के लिए फिर से खोज करना चाहते हैं, तो निर्दिष्ट करने के लिए आप एक तीसरा पैरामीटर भी जोड़ सकते हैं

जहां आपका। Exe वास्तव में रहता है वह फ़ोल्डर प्राप्त करने के लिए, का उपयोग करें:

 var executingPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); 

जैसा कि अन्य लोगों ने कहा है, आप @ साथ स्ट्रिंग को / (यदि आप बैकस्लैश भी बच सकते हैं) को शामिल कर सकते हैं, लेकिन जो कुछ उन्होंने ढीला किया था (अर्थात, इससे संबंधित परिवर्तन करने के बावजूद इसे लागू नहीं किया गया था) था तथ्य यह है कि, जैसा कि मैंने हाल ही में पता लगाया है, बिना पथ नाम की शुरुआत में, बिना . वर्तमान निर्देशिका का प्रतिनिधित्व करने के लिए, वर्तमान निर्देशिका वृक्ष की जड़ को संदर्भित करता है।

 C:\foo\bar>cd \ C:\> 

बनाम

 C:\foo\bar>cd .\ C:\foo\bar> 

(उपयोग करके स्वयं का उपयोग करने के रूप में एक ही प्रभाव पड़ता है .\ अपने आप से, मेरे अनुभव से। मुझे नहीं पता कि क्या कोई विशिष्ट मामलों हैं जहां वे किसी तरह का मतलब नहीं होगा।

यदि आप चाहते हैं तो आप भी प्रमुख .\ छोड़ सकते हैं।

 C:\foo>cd bar C:\foo\bar> 

वास्तव में, यदि आप वास्तव में चाहते थे, तो आपको बैकस्लैश का उपयोग करने की आवश्यकता भी नहीं है फ़ॉरवर्डस्लाब्स पूरी तरह से अच्छी तरह से काम करते हैं! (हालांकि एक एकल / मौजूदा ड्राइव रूट के रूप में उपनाम नहीं है जैसा कि \ करता है।)

 C:\>cd foo/bar C:\foo\bar> 

आप उन्हें वैकल्पिक भी कर सकते हैं

 C:\>cd foo/bar\baz C:\foo\bar\baz> 

… मैं वास्तव में विषय से बाहर गया हूं, हालांकि, यदि आपको कोई दिलचस्पी नहीं है, तो इस सब को अनदेखा करने के लिए स्वतंत्र महसूस करें।

बहुत सीधे आगे, सापेक्ष पथ का उपयोग करें

 string[] offerFiles = Directory.GetFiles(Server.MapPath("~/offers"), "*.csv");