Как программно удалить каталог со всеми файлами и подкаталогами?
Версия текста: 1.0
Для этой цели хорошо подходит функция 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 должно содержать указатель на полный путь к каталогу (или файлу).
|
Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы
то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских
прав.