У меня есть несколько старых версий кода Boost, которые используют функцию-член leaf () класса path в библиотеке файловой системы Boost. Однако, пытаясь скомпилировать его недавно, я заметил, что это исчезло и устарело.
Задача, которую он выполняет, — получить все каталоги, которые находятся в указанной папке, и сохранить их.
Ради этого примера, давайте просто скажем, что я выводил их на консоль.
Например, каталоги могут быть:
/home/user/dir/
/home/user/dir/one
/home/user/dir/two
/hone/user/dir/three
Поэтому я передаю / home / user / dir в directory_iterator и проверяю, является ли это каталогом, используя is_directory (). Я хотел бы напечатать последнюю часть путей, так что …
one
two
three
Я знаю, что мог бы выполнить некоторые манипуляции со строками, выполнив поиск последнего / и т. Д., Но я хотел бы знать, есть ли еще способ сделать это, используя класс path.
Как я могу читать из Повысить документацию, метод leaf () был заменен на filename (). Вы можете получить все элементы, используя итераторы. Больше Учебник по файловой системе Boost, в том числе рабочий пример использования.
Других решений пока нет …