Основываясь на предложении Хендлмана, вы можете сделать:
Path.GetFileName(Path.GetDirectoryName(path))
Это не касается файловой системы (в отличие от FileInfo
) и будет делать то, что требуется. Это будет работать с папками, потому что, как говорит MSDN :
Возвращаемое значение: Символы после последнего символа каталога в пути. Если последний
символ пути является символом разделителя каталога или тома, это
метод возвращает String.Empty. Если путь равен нулю, этот метод возвращает
нуль.
Кроме того, просмотр справочного источника подтверждает, что GetFilename
не волнует, является ли переданный путь файлом или папкой: он просто выполняет чисто строковые манипуляции.