.NET

2010-03-14 3 views
45

में एक सापेक्ष फ़ाइल सिस्टम पथ में एक यूआरआई पथ को परिवर्तित करना मैं .NET में एक पूर्ण या सापेक्ष यूआरआई पथ (उदा। /foo/bar.txt) को संबंधित (सेगमेंटवाइड) संबंधित सापेक्ष फ़ाइल सिस्टम पथ (उदा। foo\bar.txt) में कैसे परिवर्तित करूं?.NET

मेरा प्रोग्राम एएसपी.NET एप्लिकेशन नहीं है।

+0

इसे और अधिक समझ कर लिया होगा मुझे इस्तेमाल करने के लिए एक उदाहरण के रूप में एक सापेक्ष यूआरआई पथ। – acdx

उत्तर

4

आप ऐसा कर सकते हैं:

var localPath = Server.MapPath("/foo/bar.txt"); 

See MSDN for details

+2

मेरा प्रोग्राम एक एएसपी.NET एप्लिकेशन नहीं है, मैं सर्वर ऑब्जेक्ट तक पहुंच कैसे प्राप्त करूं? – acdx

+0

@acdx - मैं उलझन में हूं ... क्या चल रहा है, इसके चलते आवेदन? आपका प्रश्न 'uri' टैग किया गया है, इसलिए मैं उलझन में हूं अगर यह वेब नहीं है, समझाओ? –

+0

मैं एक सापेक्ष फ़ाइल पथ प्राप्त करना चाहता हूं, जैसे 'foo \ bar.txt', कि मैं एक पूर्ण फ़ाइल पथ बनाने के लिए' पथ। कॉम्बाइन 'पर जा सकता हूं। – acdx

74

आप पहले से ही Server.MapPath की कोशिश की?
या Uri.LocalPath संपत्ति? निम्नलिखित की तरह कुछ:

string uriString = "file://server/filename.ext"; 
// Lesson learnt - always check for a valid URI 
if(Uri.IsWellFormedUriString(uriString)) 
{ 
    Uri uri = new Uri(uriString); 
    Console.WriteLine(uri.LocalPath); 
} 
+0

यह समाधान मेरे लिए काम किया। –

+0

+1: बिल्कुल वही जो मैं खोज रहा था, धन्यवाद। –

+0

@ बाइनरी, @ गैरेथ, मुझे खुशी है कि आपकी मदद की। –

8

मैं इस तरह से एक रिश्तेदार या निरपेक्ष यूआरआई और एक आधार पथ से एक पूर्ण पूर्ण फ़ाइल सिस्टम पथ निर्माण करने के लिए पता लगा।

के साथ:

Uri basePathUri = new Uri(@"C:\abc\"); 

एक सापेक्ष URI से:

string filePath = new Uri(basePathUri, relativeUri).AbsolutePath; 

एक निरपेक्ष यूआरआई से:

// baseUri is a URI used to derive a relative URI 
Uri relativeUri = baseUri.MakeRelativeUri(absoluteUri); 
string filePath = new Uri(basePathUri, relativeUri).AbsolutePath;