С# (нестатический) класс для представления путей

Я ищу класс С# , который представляет путь к файловой системе. Я хотел бы использовать его (вместо строк) как тип данных переменных и аргументов метода (главные причины: тип безопасности, concat-proof, логические сравнения).

  • System.IO.Path предоставляет большинство функций, которые я хочу, но они статичны.
  • System.IO.FileInfo, как я понимаю, выполняет операции ввода-вывода для выполнения своей работы. Мне нужна только оболочка для строки пути.

Спасибо!

Ответ 1

Может быть библиотека NDepend.Helpers.FileDirectoryPath - это то, что вы ищете.

Он обеспечивает:

  • Сильно типизированный путь к файлу/каталогу.
  • Относительное/абсолютное преобразование пути.
  • API нормализации пути
  • API проверки подлинности пути
  • API сравнения путей
  • API просмотра веб-страниц.
  • API для переадресации путей
  • Список операций пути (TryGetCommonRootDirectory, GetListOfUniqueDirsAndUniqueFileNames, список равенств...)

Ответ 2

Хорошо, что вы просите, System.Uri. Но то, что вы хотите сделать (точнее, что вам следует делать), это использовать System.Path и друзей. Это то, что делают все остальные, и это то, что правильно и уместно.

Ответ 3

Прежде всего, System.IO.Path - static, а не abstract.

В зависимости от того, что именно вы хотите сделать, вы можете использовать System.IO.DirectoryInfo, System.Uri или создать пользовательский класс, который использует System.IO.Path внутренне.

Ответ 4

Создайте оболочку для System.IO.Path и добавьте недостающую функциональность в вашу упаковку.

Ответ 5

System.IO.Path не является абстрактным классом, это статический класс; разница заключается в том, что вы можете использовать статические методы Path для управления строками, которые представляют пути к файлам.

Вы также можете использовать класс System.Uri для некоторых операций с файловыми путями, но этот класс действительно нацелен на URL-адреса, а не файлы.

Если вы хотите быть фантастическим или вам нужны методы манипуляции с файлами, которые нужно подключить к определенному экземпляру, вы можете написать набор методов расширения классу String, которые выполняют операции с файлом путем использования Path методы внутри.