Проверьте правильность пути - PullRequest
95 голосов
/ 01 июня 2011

Мне просто интересно: я ищу способ проверить, является ли данный путь допустимым. (Примечание: я не хочу проверять, существует ли файл! Я только хочу подтвердить правильность пути - поэтому, если файл может существовать в этом месте) .

Проблема в том, что я не могу найти ничего в .Net API.Из-за большого количества форматов и местоположений, которые поддерживает Windows, я бы предпочел использовать нечто родное MS.

Так как функция должна иметь возможность проверять:

  • ОтносительныйПути (./)
  • Абсолютные пути (c: \ tmp)
  • UNC-пути (\ some-pc \ c $)
  • NTFS-ограничения, такие как полный путь1024 символа - если я не ошибаюсь, превышение пути сделает файл недоступным для многих внутренних функций Windows.Переименование его с помощью Explorer по-прежнему работает
  • Пути к GUID тома: "\? \ Volume {GUID} \ somefile.foo

У кого-нибудь есть такая функция?

Ответы [ 11 ]

0 голосов
/ 06 февраля 2013

Вы можете попробовать использовать Path.IsPathRooted () в сочетании с Path.GetInvalidFileNameChars (), чтобы убедиться, что путь на полпути в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...