2010-04-07 10 views
11

में पूर्ण पथ के सापेक्ष पथ मैं एक वीबी.नेट कंसोल एप्लिकेशन लिख रहा हूं जहां यह सापेक्ष पथ लेता है और सभी फ़ाइल नामों को थूकता है, या अमान्य इनपुट के लिए त्रुटि करता है। मैं सापेक्ष पथ से परेशानी हो रही PhysicalPath हो रहा हैवीबीएनईटी

उदाहरण:

  1. मैं फ़ोल्डर में हूँ C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin\Debug

  2. मेरा आवेदन, SP.exe, एक ही फ़ोल्डर में भी है।

  3. मैं चलाता हूं: "SP.exe ..\"। आउटपुट फ़ोल्डर में सभी फ़ाइलों की एक सूची होगी "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj\bin"

  4. मैं चलाता हूं: "SP.exe ..\\..\"। आउटपुट फ़ोल्डर में सभी फ़ाइलों की एक सूची होगी "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol\SP_Proj"

  5. मैं चलाता हूं: "SP.exe ..\\..\\..\"। आउटपुट फ़ोल्डर "C:\Documents and Settings\MehdiAnis.ULTIMATEBANGLA\My Documents\Visual Studio 2005\Projects\SP_Sol"

वर्तमान में मैं एक रिश्तेदार पथ से निपटने कर रहा हूँ में सभी फ़ाइलों की एक सूची होगा, लेकिन अब नहीं:

If Source.IndexOf("..\") = 0 Then 
     Dim Sibling As String = Directory.GetParent(Directory.GetCurrentDirectory()).ToString()()) 
     Source = Source.Replace("..\", Sibling) 
    End If 

कैसे मैं आसानी से एकाधिक ..\ संभाल कर सकते हैं?

उत्तर

22

आप System.IO.Path.GetFullPath() के लिए देख रहे हैं। यह किसी भी प्रकार के सापेक्ष पथ को संभालना चाहिए।

+0

+1, मुझे इसे मारो! :) –

+0

धन्यवाद, यह काम किया! –

+0

@ मेहदी: चूंकि ऐसा लगता है कि यह आपकी समस्या का समाधान था, इसलिए इसे ऊपर/नीचे तीरों के बगल में स्थित चेकमार्क का उपयोग करके उत्तर के रूप में चिह्नित करना एक अच्छा विचार होगा। –