170 похожих чатов

А как можно в с++ найти определённый файл на диске?

Гуглирую час уже, ответы только под линукс, а для винды ничего нет, хотя вещь вроде как элементарная.

17 ответов

15 просмотров

https://en.cppreference.com/w/cpp/filesystem

Егор-Соколов Автор вопроса
Sergey Anisimov
https://en.cppreference.com/w/cpp/filesystem

надо каждую папку превращать в список и чекать по нему содержимое? Или я просто не вижу прямой функции на поиск?

Егор Соколов
надо каждую папку превращать в список и чекать по ...

Итерируйтесь рекурсивно по директориям, да. Переносимых globbing-expression'ов все равно нет, а какой-то омнипотентный search, полагаю, имел бы очень тяжеловесный интерфейс (вспомните, например, интерфейс find-утилиты) и высокую алгоритмическую ригидность, чтобы быть востребованным.

С чего ты взял что элементарная?

Давай начнем с того, как ты файл определишь, ЧТО надо искать?

Егор-Соколов Автор вопроса
Ilya Zviagin
Давай начнем с того, как ты файл определишь, ЧТО н...

Ну вообще я думал просто вписать название файла. Я хотел что то типа: FindFile(“file.txt”, “c://”); Но я уже оставил эту задачу. Видел там выше советовали книгу Стивена Прата, решил её почитать пока что, а то сложно. Любую документацию открываю и ничего не понимаю.

Егор Соколов
Ну вообще я думал просто вписать название файла. Я...

Ну, а ты в курсе вообще, что имён у файла может быть много? Ты в курсе, что файловая система современного компьютера -- это нифига не дерево? (прикольно, но многие производители антивирусов ТОЖЕ этого не знают)

Егор Соколов
Ну вообще я думал просто вписать название файла. Я...

Задача поиска файла в итоге -- вовсе не простая, очень.

Егор-Соколов Автор вопроса
Ilya Zviagin
Ну, а ты в курсе вообще, что имён у файла может бы...

Я пришёл в плюсы из питона, там было всё проще

Найти по имени или пути?

Егор Соколов
По имени

FindFirstFile, FindNextFile https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-findfirstfilea

Хм, у меня вот третья ссылка в гугле. И под винду есть, и через либы, и через современный С++ https://www.bfilipek.com/2019/04/dir-iterate.html

Denis Pr
Хм, у меня вот третья ссылка в гугле. И под винду ...

Вопрос не настолько прост, если мы заговорим о производительности

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта