![]() |
#3 |
Дмитрий Ерин
|
Вот рабочий код:
int deleteAllFiles() { int Handle=0; str FileName; str Path = 'D:\\Temp'; dialogButton Db; [Handle, FileName] = WinApi::findFirstFile(Path + '\\*.txt'); if (Handle == -1) return -1; // not found Db = BOX::yesNo("В указанном каталоге уже есть TXT файлы!!! Удалить их?", DialogButton::Yes); if (Db == DialogButton::No) return 0; while (FileName) { WinApi::deleteFile(Path + '\\' + FileName); FileName = WinApi::findNextFile(Handle); } WinApi::findClose(handle); return 1; } Ваши ошибки: 1. Как я и думал, нужно было использовать FindNextFile 2. Нельзя было выполнять WinApi::findClose(handle), не закончив операцию; 3. Использование не совсем традиционного способа вытаскивания значений из контейнера (conpeek) привело к повторному вызову функции FindFirstFile, что само по себе некорректно. Желаю удачи в нелегком деле удаления AllFiles с AllDrives ![]() PS: Ради интереса посмотрите реализацию класса CCCopyDirectory. |
|
|
За это сообщение автора поблагодарили: Gustav (5), alex55 (1), Logger (3). |