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

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

  • Система. IO.Path обеспечивает большую часть функциональности, которую я хочу, но это статично.
  • Система. IO.FileInfo, как я понимаю, выполняет операции IO, чтобы сделать его задание. Я только хочу обертку для строки пути.

Спасибо!

13
задан Yodan Tauber 20 June 2010 в 06:48
поделиться

5 ответов

Возможно, вы ищете библиотеку NDepend.Helpers.FileDirectoryPath .

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

  • строго типизированный путь к файлу / каталогу.
  • Преобразование относительного / абсолютного пути.
  • API нормализации пути
  • API проверки правильности пути
  • API сравнения путей
  • API просмотра пути.
  • API смещения пути
  • Список операций с путем (TryGetCommonRootDirectory, GetListOfUniqueDirsAndUniqueFileNames, равенство списка…)
5
ответ дан 2 December 2019 в 01:31
поделиться

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

2
ответ дан 2 December 2019 в 01:31
поделиться

Прежде всего, System.IO.Path является статическим , а не абстрактным .

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

2
ответ дан 2 December 2019 в 01:31
поделиться

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

0
ответ дан 2 December 2019 в 01:31
поделиться

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

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

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

0
ответ дан 2 December 2019 в 01:31
поделиться
Другие вопросы по тегам:

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