Как программно удалить каталог со всеми файлами и подкаталогами
|
Для этой цели хорошо подходит функция SHFileOperation. Тип операции wFunc необходимо установить в FO_DELETE. Обычный режим работы функции предусматривает вывод диалога отображения протекания файловой операции (прогресс-диалога) и получение подтверждения от пользователя на выполнение операции. При необходимодимости подавить подобные запросы необходимо установить в поле fFlags флаг FOF_NOCONFIRMATION. Флаг FOF_SILENT подавляет вывод прогресс-диалога.
#include <shellapi.h>
#pragma comment(lib,"shell32") int res; SHFILEOPSTRUCT fo; ZeroMemory(&fo, sizeof(fo)); fo.hwnd = hwndOwner; fo.pFrom = pszFullPath; fo.wFunc = FO_DELETE; fo.fFlags = FOF_NOCONFIRMATION; res = SHFileOperation(&fo); | ПРИМЕЧАНИЕ Иногда возникает необходимость произвести удаление файлов в "Корзину". Для этого нужно установить флаг FOF_ALLOWUNDO, при этом нужно помнить, что для правильной работы в этом случае поле pFrom должно содержать указатель на полный путь к каталогу (или файлу). | |