С# (нестатический) класс для представления путей
Я ищу класс С# , который представляет путь к файловой системе. Я хотел бы использовать его (вместо строк) как тип данных переменных и аргументов метода (главные причины: тип безопасности, 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
методы внутри.