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

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

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

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

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

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

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

Навигация по директориям - C++
Здравствуйте! Помогите пожалуйста реализовать навигацию по директориям. Например открывается консольное окно в директории d:\soft . Хочу...

Задача по файлам - C++
Найдите в файле положение максимального элемента

Задание по файлам - C++
Добрый вечер. Помогите, пожалуйста, с заданием по чтению и записи в файл. Само задание на прикрепленной картинке. Вот моя структура...

Вопросы по файлам - C++
Что такое неформатированный(необработанные) данные в файле? Почему сдесь в коде в файл не записываются данные с массива? #include...

простой вопрос по файлам - C++
при оперировании файлами мне в коде программы приходится указывать точный путь к ним. Как мне быть, если я знаю только то, что файл в одной...

Разбиением программы по файлам - C++
Помогите, пожалуйста, разбил программу по файлам, а она пишет, что файлы постоянно переопределяются, хотя я использовал и #pragma once и...

Раскидать программу по файлам - C++
Программа находится в одном файле, но нужно раскидать ее так, что-бы в одном файле один класс. И файл с main() отдельно. Помогите, уже пол...

По текстовым файлам и строкам - C++
Задана последовательность идентификаторов, разделенных сериями пробелов. Последовательность задана строкой символов (string) заканчивается...

где указать путь к файлам - C++
Есть программа по коду хоффмана. Нужно чтобы какие-либо данные можно было взять out.txt и уже обработанную при помощи кода хоффмана вернуть...

где указать путь к файлам - C++
Есть программа по коду хоффмана. Нужно чтобы какие-либо данные можно было взять out.txt и уже обработанную при помощи кода хоффмана вернуть...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
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
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
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     Поиск по файлам и директориям
Ответ Создать тему
Опции темы

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