Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определение числа файлов в указанном каталоге / 7 сообщений из 7, страница 1 из 1
08.07.2005, 09:56
    #33156078
Mozhaev Petr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
Как можно определить число файлов, содержащихся в указанном каталоге?
Спасибо.
...
Рейтинг: 0 / 0
08.07.2005, 10:14
    #33156116
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
Найти их все и в процессе поиска считать их.
...
Рейтинг: 0 / 0
08.07.2005, 10:24
    #33156144
Mozhaev Petr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
Это понятно, но как их все найти? Пример не помешал бы.
...
Рейтинг: 0 / 0
08.07.2005, 11:10
    #33156298
SeraTJ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
Тебе под винду нужно?
winapi примерчик:

int nFilesCount=0;
WIN32_FIND_DATA wfd;
HANDLE hFirstFile = FindFirstFile(_T("c:\\your_searched_folder\\*.*"), &wfd);
if (hFirstFile != INVALID_HANDLE_VALUE)
{
do
{
nFilesCount += (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY));
} while (FindNextFile(hFirstFile, &wfd));
FindClose(hFirstFile);
}

Вуаля.
в этом окошке сообщения нет компилятора :), поэтому за полное отсутствие ошибок не ручаюсь.
...
Рейтинг: 0 / 0
08.07.2005, 11:12
    #33156303
redskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
Mozhaev PetrЭто понятно, но как их все найти? Пример не помешал бы.

Код: plaintext
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.
#include <io.h>
#include <direct.h>

int GetFileCount(const char* const szpath);
int GetFileCount(const char* const szpath)
{
	int count =  0 ;
	if(!_chdir(szpath))
	{
		_finddata_t  finf;
		intptr_t fptr = _findfirst("*.*", &finf);
		if(fptr != (- 1 ))
		{
			do
			{
				if(!(finf.attrib & _A_SUBDIR ))
					++count;
			}while(_findnext(fptr, &finf) != (- 1 ));
		}
	}
	return count;
}

int main()
{
             cout << GetFileCount("c:\\temp") << endl;
	cout << GetFileCount("c:\\winnt") << endl;
	
	return  0 ;
}


Вот примерный код. Если надо учитывать каталоги и файлы в них, то соотв. немного доработать напильником
...
Рейтинг: 0 / 0
08.07.2005, 11:33
    #33156376
redskin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
с учетом вложенных каталогов:

Код: plaintext
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.
50.
#include <iostream>
using namespace std;

#include <io.h>
#include <direct.h>

int GetFileCount2(const char* const szpath, int& nfiles, int& ndirs);
int GetFileCount2(const char* const szpath, int& nfiles, int& ndirs)
{
   int ret =  0 ;
   if(!_chdir(szpath))
   {
      _finddata_t  finf;
      intptr_t fptr = _findfirst("*.*", &finf);
      if(fptr != (- 1 ))
      {
         do
         {
            if(finf.attrib & _A_SUBDIR )
            {
               if(strcmp(finf.name, ".") && strcmp(finf.name, ".."))
               {
                  ++ndirs;
                  GetFileCount2(finf.name, nfiles, ndirs);
               }
            }
            else
               ++nfiles;
         }while(_findnext(fptr, &finf) != (- 1 ));
      }
      _chdir("..");
   }
   else
      ret = - 1 ;
   
   return ret;
}

int main()
{
   int nfiles =  0 , ndirs =  0 ;
   GetFileCount2("c:\\temp", nfiles, ndirs);
   cout << "subdirs " << ndirs << endl <<  "files " << nfiles << endl;

   nfiles =  0 , ndirs =  0 ;
   GetFileCount2("c:\\winnt", nfiles, ndirs);
   cout << "subdirs " << ndirs << endl <<  "files " << nfiles << endl;

   return  0 ;
}
...
Рейтинг: 0 / 0
08.07.2005, 23:18
    #33157811
Mozhaev Petr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определение числа файлов в указанном каталоге
Спасибо. Помогло.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определение числа файлов в указанном каталоге / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]