Форум программистов, компьютерный форум CyberForum.ru

Поиск файла в указанном каталоге - C++

Восстановить пароль Регистрация
 
tagboy
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 16
08.07.2015, 21:49     Поиск файла в указанном каталоге #1
имеется рабочий код на Visual C++ 2008, который выводит на экран список всех файлов с расширением cpp,которых он ищет в своем каталоге. Нужно сделать так, чтоб можно было указать, где искать(путь к каталогу)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "stdafx.h"
#include "string.h"
#include "conio.h"
#include "io.h"
#include "time.h"
#include "stdlib.h"
#include "iostream"
#include "locale.h"
 
using namespace std;
 
 
 
 
#define LIM_STR 255
int _tmain(int argc, _TCHAR* argv[])
{   
    FILE *pFile;
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    char szBuffer[LIM_STR];
    struct _finddata_t findData;
    intptr_t hFile;
 
    
 
    if((hFile = _findfirst("*.cpp", &findData ))
 
        ==-1L)
 
        cout<<;
 
    else
    {
        cout << "Файлы проекта" << endl << endl;
        cout<<"Имя файла:\n";
      
        do
        {
        ctime_s ( szBuffer, _countof (szBuffer),
            &findData.time_write);
        cout<<findData.name;
        cout << endl;
        } while ( _findnext ( hFile, &findData ) == 0);
        _findclose (hFile);
    }
 
    _getch();   
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4265 / 3696 / 1243
Регистрация: 14.04.2014
Сообщений: 14,480
08.07.2015, 22:14     Поиск файла в указанном каталоге #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В 26-й строке указывай нужный путь.
tagboy
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 16
09.07.2015, 10:50  [ТС]     Поиск файла в указанном каталоге #3
Пробовал указать
C++ (Qt)
1
if((hFile = _findfirst("*.cpp", "C:\\" ))
вышла ошибка
error C2664: _findfirst64i32: невозможно преобразовать параметр 2 из 'const char [4]' в '_finddata64i32_t *'

Добавлено через 30 минут
Спасибо, не тот параметр поменял, надо было в первом параметре к расширению добавить где искать. Еще один вопрос, а как сделать поиск, чтоб он искал и в подкаталогах?
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,211
Завершенные тесты: 3
09.07.2015, 11:26     Поиск файла в указанном каталоге #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
tagboy, не там. hFile = _findfirst("C:\\...\\*.cpp", &findData)
tagboy
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 16
09.07.2015, 12:06  [ТС]     Поиск файла в указанном каталоге #5
а как сделать поиск, чтоб он и внутри указанных каталогов искал
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,211
Завершенные тесты: 3
09.07.2015, 12:26     Поиск файла в указанном каталоге #6
tagboy, перед поиском установите поле структуры findData attrib как _A_SUBDIR:
C
1
findData.attrib = _A_SUBDIR;
tagboy
0 / 0 / 0
Регистрация: 04.01.2015
Сообщений: 16
09.07.2015, 18:38  [ТС]     Поиск файла в указанном каталоге #7
к сожалению поиск в поддиректориях с помощью findData.attrib = _A_SUBDIR; не работает. Например, в каталоге с проектом я создал папку test, туда положил .cpp файл. Но, к сожалению именно внутри папки test он не находит, а в каталоге с проектом он находит .cpp-файлы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2015, 20:27     Поиск файла в указанном каталоге
Еще ссылки по теме:

Создать программу, реализующую: создание файла, просмотр файла, поиск по файлу, выход C++
Разработать программу для поиска файла в текущем каталоге C++
Поиск файлов и папок в текущем каталоге C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,211
Завершенные тесты: 3
09.07.2015, 20:27     Поиск файла в указанном каталоге #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
tagboy, видимо, тогда придется писать функцию рекурсивного обхода. Если в текущем каталоге есть другие каталоги — рекурсивно запускаете в цикле функцию для всех этих каталогов.
Yandex
Объявления
09.07.2015, 20:27     Поиск файла в указанном каталоге
Ответ Создать тему
Опции темы

Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru