Найти последний файл в каталоге. С++
Подскажите более оптимальный вариант поиска последнего файла в каталоге.
Файлы в каталоге имеют расширение .dat и пронумерованы от 1. То есть такой вид:
1.dat
2.dat
3.dat
Вот, что у меня есть:
const file_system::path work_dir = file_system::current_path();
string tmp;
for (const auto& entry : file_system::directory_iterator(work_dir))
{
tmp = entry.path().filename().string();
}
Ну и в итоге tmp будет содержать идентификатор последнего файла, но здесь линейный поиск, а возможно это сделать быстрее? С учетом того, что файлы могут редактироваться.
Ответы (1 шт):
Автор решения: IAMLERNCSHARP
→ Ссылка
С учетом всех замечаний, что были выражены в комментах, пришел к варианту, что самый оптимальный способ для решения моей задачи(найти последнее число, чтобы использовать его для создания следующего файла):
auto dir_iter = fs::directory_iterator(id_file_cat_name);
int file_count = count_if(begin(dir_iter), end(dir_iter), [](auto& entry) {return entry.is_regular_file(); });