Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

Вы уже пробовали 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);
}

Ответ 2

Я понял этот способ, чтобы создать полный путь абсолютной файловой системы от относительного или абсолютного 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;