#.net #c#-2.0
#.net #c #-2.0
Вопрос:
Мне нужно нормализовать путь к файлу, чтобы часть пути можно было сопоставить с помощью String.StartsWith(...)
Пример:
- Полный путь: C:/Common/Dir1/Dir2/file.txt
- Общий путь: C:Common
Хотя эти два пути к файлам эквивалентны, общая часть не может быть сопоставлена с помощью метода String.StartsWith(...)
.
Теперь я понимаю, что метод API: Path.NormalizePath(path, true);
может выполнить нормализацию, но, к сожалению, этот метод защищен изнутри!
Какие еще возможности у меня есть для нормализации путей к файлам? Path.GetFullPath(...)
вероятно, включена опция, но работает только для абсолютных путей к файлам, поскольку она добавит префикс типа: C:/ для относительных.
Ответ №1:
эта работа под .net 2.0
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var path = @"C:/Common/Dir1/Dir2/file.txt";
var canonicalPath = new Uri(path).LocalPath;
Console.WriteLine(canonicalPath.StartsWith(@"C:Common"));
Console.Read();
}
}
}