Форум — Ответы ( К темам )
? | WiSucht: Как можно удалить какой либо каталог (30-12-2002 20:08:54) |
Как можно удалить какой либо каталог вместе со всеми файлами в нём, и как удалять файлы по маске(например *.tx?)??? ЗАРАНЕЕ СПАСИБО!!! | |
Георгий (31-12-2002 02:49:56) | |
Попробуй две API-шки: DeleteFile RemoveDirectory если DeleteFile не работает с масками, то используй цикл: hSearch=FindFirstFile(FolderName+"\\*.*",&FileData); bool n=true; if (hSearch!=INVALID_HANDLE_VALUE) while(n) { DeleteFile(FileData.cFileName); FindNextFile(hSearch,&FileData); }; RemoveDirectory(FolderName.c_str()); должно сработать, если нет вложенных папок, а если есть, то делай рекурсивную функцию. | |
Георгий (31-12-2002 02:50:11) | |
Попробуй две API-шки: DeleteFile RemoveDirectory если DeleteFile не работает с масками, то используй цикл: hSearch=FindFirstFile(FolderName+"\\*.*",&FileData); bool n=true; if (hSearch!=INVALID_HANDLE_VALUE) while(n) { DeleteFile(FileData.cFileName); n=FindNextFile(hSearch,&FileData); }; RemoveDirectory(FolderName.c_str()); должно сработать, если нет вложенных папок, а если есть, то делай рекурсивную функцию. | |
Георгий (31-12-2002 02:51:03) | |
Извини — впервом примере — опечатка
| |
Владимир (31-12-2002 18:28:43) | |
Искать файлы *.jpg в текущем каталоге (можно задать *.tx*, *.txt, и т.д.) void __fastcall TForm1::Button1Click(TObject *Sender) { TStringList *me = new TStringList; AnsiString currDir = GetCurrentDir(); // находим все файлы .jpg в текущей папке TSearchRec sr; if(FindFirst(currDir+"\\"+"*.jpg", faAnyFile, sr) == 0) { me->Add(currDir+"\\"+sr.Name); // заносим в me, а можем и удалить while (FindNext(sr) == 0) me->Add(currDir+"\\"+sr.Name); } FindClose(sr); if(!me->Count) { Beep(); ShowMessage("Не найдено !"); } else ShowMessage(me->Text); delete me; } | |
Владимир (31-12-2002 18:48:06) | |
>> // заносим в me, а можем и удалить можем и удалить DeleteFile(const AnsiString FileName) а потом и RemoveDir(const AnsiString Dir); |