Я пытаюсь получить самый последний файл в каталоге журналов. Я использую библиотеку c ++ и filesystem
.
Я попытался использовать directory_iterator
из experimental/filesystem
для итерации каждого файла в моем каталоге и, используя std::max_element
, сравнить last_write_time
каждого файла, чтобы получить больший.
namespace fs = std::experimental::filesystem;
auto dir_it = fs::directory_iterator(my_path);
auto path = *std::max_element(fs::begin(dir_it), fs::end(dir_it), [](const fs::directory_entry& f1, const fs::directory_entry& f2){
return fs::last_write_time(f1.path()) < fs::last_write_time(f2.path());
});
Я ожидаю получить объект fs::directory_entry
, но когда я печатаю путь, он пуст.
Поэтому я посмотрел на сравниваемые элементы внутри моей функции и на каждом шаге f1.path() == f2.path()
, поэтому вывод понятен, но я не понял, почему функция сравнения не работает.