Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 11:37
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск по файлам и директориям (C++):

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

WINSOCK. Как мне получить доступ ко всем файлам и директориям сервера и к управлению ими? - Visual Basic
Вот допустим у меня есть приложение клиент на моём компе и приложение сервер на другом они соеденены с помощью WINSOCK по протоколу TCP... ...

Поиск по директориям - Assembler
Здравствуйте! У меня есть программа, которая ищет файлы по маске и проводит с ними определенные действия. Так вот, нужно, чтобы она...

Поиск по файлам - Bash
Добырй день. С bash знаком совсем недавно. Есть такое задание: написать скрипт. Есть около 1500 фйлов с расширением .log, каждый из...

Поиск по файлам html - C#
Добрый день. Есть электронное пособие, вся информация в Html. Как реализовать поиск по пособию? документы открываются в компоненте...

Xsl поиск по файлам - XML/XSL
возникла задача выводить содержимое файлов при совпадении текста в нем.... но вот не могу сообразить как сделать, чтоб выводилось первые...

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

Добавлено через 1 час 17 минут
Кстати можно ведь и без WIN32_FIND_DATA
0
lemegeton
2931 / 1360 / 136
Регистрация: 29.11.2010
Сообщений: 2,725
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 / 0
Регистрация: 07.12.2010
Сообщений: 13
27.12.2010, 15:56  [ТС] #5
Спасибо большое за код:] Не то чтобы намекал, но хотелось;]
0
27.12.2010, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2010, 15:56
Привет! Вот еще темы с ответами:

Поиск по HTML-файлам - Delphi
На форме есть: 1. Edit1 2. Button1 3. MyWebBrowser 4. Form8.Listbox1 procedure TForm1.Button1Click(Sender: TObject); var ...

Поиск в ASP по файлам MS Office - C# ASP.NET
Кто-нибудь занимался подобной проблемой? Есть ASP-сайт, на нем есть документы в PDF, DOC, XLS, PPT и т.п... Можно ли без больших денежных...

Поиск по файлам без учета регистра - PHP
Доброго времени суток, Очень нужна помощь в решении проблемы с регистрами... Ситуация такая: Есть некая директория &quot;test/&quot; в ней...

Индексация и быстрый поиск по файлам с текстом - C#
Всем привет. Нужно реализовать для собственных целей приложение для поиска по слову в файлах (pdf, .doc, .docx, .rtf и т.д.). Прочитал,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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