Преобразование URI соединяет каналом к системному пути файла прямого доступа в.NET

Как я преобразовываю абсолютный или относительный путь URI (например. /foo/bar.txt) к (segmentwise) соответствующему системному пути файла прямого доступа (например. foo\bar.txt) в.NET?

Моя программа не является приложением ASP.NET.

47
задан acdx 14 March 2010 в 14:10
поделиться

3 ответа

Я придумал этот способ создания полного абсолютного пути к файловой системе из относительного или абсолютного URI и базового пути.

С:

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

Из относительного URI:

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

Из абсолютного URI:

// baseUri is a URI used to derive a relative URI
Uri relativeUri = baseUri.MakeRelativeUri(absoluteUri);
string filePath = new Uri(basePathUri, relativeUri).AbsolutePath;
11
ответ дан 26 November 2019 в 19:39
поделиться

Вы можете сделать это:

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

Подробности см. В MSDN

5
ответ дан 26 November 2019 в 19:39
поделиться

Вы уже пробовали 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);
}
75
ответ дан 26 November 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: