Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2010, 19:13   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Прога не очет искать директории. А вот файлы нрмально ищет.

Вот код:
Код:
#include <tchar.h>
#include <dir.h>
#include <dos.h>
#include <iostream.h>
#include <fstream.h>
//---------------------------------------------------------------------------
int Length(char *s);
void CollectFiles(char *path, ofstream *file);
//---------------------------------------------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
	char *s = "*";

	ofstream fo;

	fo.open("1.txt", ios_base::trunc);
	CollectFiles(s, &fo);
	fo.close();

	getchar();
	return 0;
}
//---------------------------------------------------------------------------
void CollectFiles(char *path, ofstream *file)
{
	int handle;
	ffblk f;

	handle=findfirst(path, &f, 0);

	while (!handle)
	{
		if (f.ff_attrib==0x10)
		{
			CollectFiles(strcat(strcat(path, "\\"),f.ff_name), file);
		}
		else
		{
			printf("%s\n", f.ff_name);
			*file << path << '\\' << f.ff_name << endl;
		}
		handle = findnext(&f);
	}
	return;
}
//---------------------------------------------------------------------------
TwiX вне форума Ответить с цитированием
Старый 17.03.2010, 20:12   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а в чём собственно проблема?
хотите имена директорий увидеть?
на экране или в вашем 1.txt ?
достаточно дописать код в ветке, где определили, что нашлась директория:
Код:
		if (f.ff_attrib==0x10)
		{
			printf("%s\n  <DIRECTORY>", f.ff_name);
			*file << path << '\\' << f.ff_name << endl;
			CollectFiles(strcat(strcat(path, "\\"),f.ff_name), file);
		}
		else
		{
			printf("%s\n", f.ff_name);
			*file << path << '\\' << f.ff_name << endl;
		}
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2010, 21:23   #3
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

handle=findfirst(path, &f, 0); - будут рассматриваться только файлы, здесь тоже 0x10 надо

Последний раз редактировалось eoln; 17.03.2010 в 21:29.
eoln вне форума Ответить с цитированием
Старый 18.03.2010, 04:17   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Спасибо eoln - помогло)
Плюсик форум не даёт поставить...
TwiX вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вот такая вот задача, C++ aztec Помощь студентам 2 10.06.2009 17:27
Паскаль!Прога на файлы! vlad1991 Помощь студентам 20 28.02.2009 22:00
Пишу программу которая ищет файлы на компьютере ! Как лучше организовать структуры данных ? asked86 Общие вопросы Delphi 13 14.12.2008 19:33
Не видны файлы *.dcu в директории указанной в Project->Options->Directories/Conditionals->Search Path Иванчо Общие вопросы Delphi 2 20.09.2007 10:57