void __fastcall ScanDirectory(LPCTSTR Path, int Text, int Dpth)
{
if(Dpth == 0) return;
WIN32_FIND_DATA wfd;
HANDLE hFind = FindFirstFile(Path, &wfd);
Text --;
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
if(wfd.dwFileAttributes & Mask)
{
if(wfd.cFileName[0] != '.')
{
strcpy((char*) &Path[Text], wfd.cFileName);
strcpy((char*) &Path[Text + strlen(wfd.cFileName)], TEXT("/*" + (char) 0));
ScanDirectory(Path, Text + strlen(wfd.cFileName) + 2, Dpth - 1);
};
};
} while(FindNextFile(hFind, &wfd) != 0);
FindClose(hFind);
};
}
Как получить из папки имена файлов
1)Выбираю директорию
2) В директории лежат папки и файлы
3) Мне нужно получить имена файлов
4) Затем вниз по дереву залезть в папки и получить оттуда снова файлы
Короче, задача такая:
взяли адрес директории;
залезли в директорию;
если файл
{
взяли имя файла;
}
иначе если директория
{
получили имя папки;
залезли в директорию;
}
//-----------------
Ну соответственно рекурсия здесь.. как рекурсию организовать я знаю... Не знаю саму работу алгоритма файл-директория.
Код:
Path - указатель на строку вида "c:/directory/*"+\x0 (буфер строки должен быть достаточного размера - используется функцией);
Text - ее длина, хотя может вычисляться налету;
Dpth - глубина сканирования (-1 для любой);
Mask - 63 (any_file)