Есть ли что-то встроенное, System.IO.Path
что дает мне только путь к файлу?
Например, если у меня есть string
@ "C: \ вебсервер \ Public \ моякомп \ конфиги \ promo.xml",
есть ли метод BCL, который даст мне
"C: \ вебсервер \ Public \ моякомп \ конфиги \"?
promo.xml
обозначает ли файл или каталог с тем же именем. Вероятно, поэтомуPath.GetDirectoryName()
он реализован так просто и просто обрезает последний сегмент или удаляет завершающий слеш, если он есть.Ответы:
Path.GetDirectoryName()
... но вам нужно знать, что путь, по которому вы идете, содержит имя файла; он просто удаляет последний бит из пути, будь то имя файла или имя каталога (на самом деле он не знает, какой именно).Сначала вы можете проверить, протестировав
File.Exists()
и / илиDirectory.Exists()
указав свой путь, чтобы узнать, нужно ли вам позвонитьPath.GetDirectoryName
источник
File.Exists()
. На самом деле, это довольно контрпродуктивно в том случае, если ваша причина поиска имени каталога - создать его, если он еще не существует.System.IO
чтобы это работало.источник
using System.IO;
использовать методы путиPath.GetDirectoryName()
возвращает имя каталога, поэтому для того, что вы хотите (с завершающим обратным символом солидуса), вы можете позвонитьPath.GetDirectoryName(filePath) + Path.DirectorySeparatorChar
.источник
источник
Используйте 'GetParent ()', как показано, работает хорошо. Добавьте проверку ошибок, как вам нужно.
источник
Я использовал это, и это хорошо работает:
источник