इस कोड का उपयोग करें:
HttpContext.Current.Server.MapPath("~")
विस्तृत संदर्भ:
Server.MapPath
भौतिक निर्देशिका में मैप करने के लिए सापेक्ष या आभासी पथ निर्दिष्ट करता है।
Server.MapPath(".")
फ़ाइल की वर्तमान भौतिक निर्देशिका (जैसे aspx) निष्पादित की जा रही है
Server.MapPath("..")
मूल निर्देशिका लौटाता है
Server.MapPath("~")
आवेदन के मूल में भौतिक पथ देता है
Server.MapPath("/")
डोमेन नाम के रूट पर भौतिक पथ लौटाता है (जरूरी नहीं कि यह एप्लिकेशन की जड़ जैसा ही हो)
एक उदाहरण:
मान लीजिए कि आपने एक वेब साइट एप्लिकेशन ( http://www.example.com/ ) को इंगित किया है
C:\Inetpub\wwwroot
और अपनी दुकान एप्लिकेशन (IIS में आभासी निर्देशिका के रूप में उप वेब, एप्लिकेशन के रूप में चिह्नित) को स्थापित किया
D:\WebApps\shop
उदाहरण के लिए, यदि आप Server.MapPath
निम्नलिखित अनुरोध में कॉल करते हैं:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
फिर:
Server.MapPath(".") returns D:\WebApps\shop\products
Server.MapPath("..") returns D:\WebApps\shop
Server.MapPath("~") returns D:\WebApps\shop
Server.MapPath("/") returns C:\Inetpub\wwwroot
Server.MapPath("/shop") returns D:\WebApps\shop
यदि पथ या तो आगे (/) या पिछड़े स्लैश () के साथ शुरू होता है, तो MapPath
पथ एक पथ देता है जैसे कि पथ पूर्ण, आभासी पथ था।
यदि पथ स्लैश से प्रारंभ नहीं होता है, तो MapPath
विधि संसाधित किए जा रहे अनुरोध की निर्देशिका के सापेक्ष पथ लौटाती है।
नोट: C # में, @ शब्दशः शाब्दिक स्ट्रिंग ऑपरेटर है जिसका अर्थ है कि स्ट्रिंग को "जैसा है" का उपयोग किया जाना चाहिए और भागने के अनुक्रम के लिए संसाधित नहीं किया जाना चाहिए।
फुटनोट
Server.MapPath(null)
और Server.MapPath("")
इस प्रभाव को भी पैदा करेगा।