как сделать листнг всех файлов и файлов в подпапках ? нашёл только листнг файлов и папок, но переделать под себя никак не могу. Вот что сделал - вроде верно, но все равно делается только листинг файлов и папок.
| Код | void pars (AnsiString a) { AnsiString vasFilename, //имя файла vasFileMask, //маска файла vasCurDir; //текущая директория //TSearchRec информация о файле TSearchRec tFileInfo; //Определяем каталог
vasCurDir=a;
//Если корневая директория удаляем слэш if(vasCurDir.Length() == 3) vasCurDir=vasCurDir.Delete(3,1); //Задаем маску vasFileMask="*.*"; //Определяем имя файла vasFilename=vasCurDir+"\\"+vasFileMask; //Сюда выведем список файлов //Form1->Memo1->Lines->Clear(); if(FindFirst(vasFilename,faAnyFile,tFileInfo) == 0) { while(1) { //Исключаем корневую if((tFileInfo.Name != ".")&(tFileInfo.Name != ".."))
//Фильтруем каталоги в Memo2 а файлы в Memo1 if(tFileInfo.Size != 0 ) Form1->Memo1->Lines->Add(tFileInfo.Name); else { Form1->Memo2->Clear(); Form1->Memo2->Lines->Add(tFileInfo.Name); AnsiString str; int co; co=Form1->Memo2->Text.Length();
str=Form1->Memo2->Text; str=str.SubString(0,co-2); ShowMessage(str); pars(str); //рекурсивный вызов функции
} if(FindNext(tFileInfo) != 0) break;
} } }
void __fastcall TForm1::Button1Click(TObject *Sender) { char a[256]; GetWindowsDirectory(a,sizeof(a)); pars(a); }
|
Вот там где рекурсивный вызов по моей идее как только нашлась папка в ней должна запуститься функция pars и потом вернуться на прошлую папку.. и тд.. но почему-то так не делается |