void __fastcall Look(void)
{
AnsiString CurDir = GetCurrentDir();//dir;
TSearchRec sr;
if(FindFirst("*.*",faAnyFile|faDirectory|faHidden,sr)==0)
do
{
if((ExtractFileExt(sr.Name) == ".tmp") || (ExtractFileExt(sr.Name) == ".chk"))
{
Form1->ListBox1->Items->Add(CurDir+sr.Name);
n++;
Form1->ProgressBar1->Max = n;
for(int i=0; i<=Form1->ProgressBar1->Max; i++)
{
Form1->ProgressBar1->Position = i;
}
}
else if(sr.Attr==faDirectory && sr.Name!="." && sr.Name!="..")
{
ChDir(sr.Name);
//SetCurrentDir(ExtractFileDir(sr.Name));
Look();
ChDir("..");
//SetCurrentDir(CurDir);
}
}
while(!FindNext(sr));
FindClose(sr);
}
Поиск файлов
Вот код:
Код:
Так он выполняет очень быстро, а надо чтобы процесс шёл по мере продвижения поиска.
[color=red]Код в сообщении форматировать обязательно.
[/color]
Ты вообще гденибудь такое видел?
Сделай как везде просто анимашку какуюнибудь, или выводи перебираемые каталоги.
На счёт анимашки, я думал, а как перебиранием каталогов сделать, чёто у меня не получается?
Код:
//Создаешь функцию для поиска
void __fastcall FindFiles(const String& Dir){
TSearchRec sr;
if (FindFirst(Dir, faAnyFile, sr) == 0)
{
do{
if(sr.Attr & faDirectory){
//Если нужно - добавляешь имя функции
//Зедсь должен быть рекурсивный вызов функции
FindFiles(sr.Name);
}
else if((ExtractFileExt(sr.Name) == ".tmp") || (ExtractFileExt(sr.Name) == ".chk")){
//Здесь добавляешь найденные файлы
...
}
}while(FindNext(sr) == 0);
FindClose(sr);
}
//Не забывай выйти
ChDir("..");
}
void __fastcall FindFiles(const String& Dir){
TSearchRec sr;
if (FindFirst(Dir, faAnyFile, sr) == 0)
{
do{
if(sr.Attr & faDirectory){
//Если нужно - добавляешь имя функции
//Зедсь должен быть рекурсивный вызов функции
FindFiles(sr.Name);
}
else if((ExtractFileExt(sr.Name) == ".tmp") || (ExtractFileExt(sr.Name) == ".chk")){
//Здесь добавляешь найденные файлы
...
}
}while(FindNext(sr) == 0);
FindClose(sr);
}
//Не забывай выйти
ChDir("..");
}