| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ПОИСК ФАЙЛА В ВИНДОУС |
| Автор: dark_religion 8.10.2006, 13:46 |
| КАК НАЙТИ ФАЙЛ С ОПРЕДЕЛЕННЫМ РАСШИРЕНИЕМ? НАПИРМЕР! .DOC .TXT .EXE В CMD есть команда! FIND какой формад для поиска по типу? |
| Автор: Daevaorn 8.10.2006, 13:59 | ||
| dark_religion, find ищет текст в файлах
P.S. ногу с шифта сними |
| Автор: Earnest 9.10.2006, 10:52 |
| FindFirstFile \ FindNextFile |
| Автор: fliengster 7.6.2008, 11:38 |
| А как тогда решить задачю если нужно и подкатологи просматривать((((((? |
| Автор: EnergoHokum 7.6.2008, 12:29 | ||
На работоспособность, если что, именно этот код я не проверял. |
| Автор: EnergoHokum 7.6.2008, 12:58 |
| Это-же пример был. А чому тут thread-unsafe? Вроде, static-переменных нету, параметры по указателям передаются (ну, кроме action, но он, я думаю, не важен). Насчёт "подкотологов" -- в описании этих функций сказано: "If the string ends with a wildcard, period, or directory name, the user must have access to the root and all subdirectories on the path", из чего я сразу подумал, что в "подкотологи" при поиске они заходят. Насчёт маски -- тоже не понял: "that can contain wildcard characters (* and ?)". Утечка ресурсов -- потенциально, если не закрыть поиск, то да. Но всё это безобразие можно оформить в виде класса, и в деструктор затолкать закрытие. И вообще, повторюсь, это был пример. |
| Автор: Rififi 7.6.2008, 13:14 | ||
в функции FindNextFile используется глобальная переменная find_file_data
эти строчки memcpy(&filename[0],dir_spec,strlen(dir_spec)); memcpy(&filename[strlen(dir_spec)],fname_mask,strlen(fname_mask)+1); на самом деле формируют вот что: "*.doc" а надо "./*.doc" Добавлено через 2 минуты и 59 секунд нет, насчёт маски я таки прогнал, извиняюсь. смутили strlen'ы |
| Автор: EnergoHokum 7.6.2008, 13:24 | ||
Ну, так можно сделать её неглобальной, в функцию-то указатель на неё передаётся... |