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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
#1

Поиск по файлам и директориям - C++

27.12.2010, 11:37. Просмотров 492. Ответов 4
Метки нет (Все метки)

Здравствуйте! Как бы сделать программку на C++ производящую поиск по файлам и директориям? точнее, просто выдающая список файлов для заданной директории, включающей и поддиректории.
Нужно пользоваться структурой WIN_32_FIND_DATA. Но как это сделать пока непонятно

Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 11:37     Поиск по файлам и директориям
Посмотрите здесь:

Как к файлам в папке обратиться? C++
Задача по файлам C++
C++ Вопросы по файлам
C++ где указать путь к файлам
C++ где указать путь к файлам
Навигация по директориям C++
По текстовым файлам и строкам C++
C++ простой вопрос по файлам
Раскидать программу по файлам C++
Разбиением программы по файлам C++
C++ Задание по файлам
Анализ небольшого кода по файлам C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
27.12.2010, 13:05     Поиск по файлам и директориям #2
Пишите рекурсивную функцию, которая будет выводить название своего каталога, все файлы содержимого своего каталога и вызывать себя для подкаталогов.
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
27.12.2010, 14:27  [ТС]     Поиск по файлам и директориям #3
Алгоритм ясен, но как именно оформить код неясно

Добавлено через 1 час 17 минут
Кстати можно ведь и без WIN32_FIND_DATA
lemegeton
 Аватар для lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
27.12.2010, 15:47     Поиск по файлам и директориям #4
Цитата Сообщение от Озабоченный Посмотреть сообщение
Алгоритм ясен, но как именно оформить код неясно
Ишь, как выражовываешься. Это ты так хитро намекаешь, чтобы за тебя весь код написали?

Пример под катом.

Для института сойдет.
C++
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
#include <windows.h>
#include <cstdio>
 
void print_spaces(int n) {
  for (int i = 0; i < n; ++i)
    printf(" ");
}
 
void RecursivePrintTree(char *folder_name, int spaces=0, int space_step=2) {
  WIN32_FIND_DATA file_find_data;
  HANDLE file_find_handle;
  print_spaces(spaces * space_step);
  printf("- %s\n", folder_name);
 
  char *find_string = new char[strlen(folder_name)+5];
  strcpy(find_string, folder_name);
  strcat(find_string, "\\*.*");
 
  file_find_handle = FindFirstFile(find_string, &file_find_data);
  if (file_find_handle != INVALID_HANDLE_VALUE) {
    do {
      if (file_find_data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
        if ((strcmp(file_find_data.cFileName, ".") == 0) ||
            (strcmp(file_find_data.cFileName, "..") == 0)) {
          continue;
        }
        char *find_subdir = new char[strlen(folder_name)+1+
            strlen(file_find_data.cFileName) + 5];
        strcpy(find_subdir, folder_name);
        strcat(find_subdir, "\\");
        strcat(find_subdir, file_find_data.cFileName);
        RecursivePrintTree(find_subdir, spaces+1, space_step);
        delete [] find_subdir;
      } else {
        print_spaces((spaces + 1) * space_step);
        printf("- %s\n", file_find_data.cFileName);
      }
    } while (FindNextFile(file_find_handle, &file_find_data));
  }
  delete [] find_string;
}
 
int main(int argc, char *argv[]) {
  RecursivePrintTree("D:\\VIDEO");
 
  int key;
  scanf("%d", &key);
}
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
27.12.2010, 15:56  [ТС]     Поиск по файлам и директориям #5
Спасибо большое за код:] Не то чтобы намекал, но хотелось;]
Yandex
Объявления
27.12.2010, 15:56     Поиск по файлам и директориям
Ответ Создать тему
Опции темы

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