SHFILEOPSTRUCT sh;
sh.hwnd=HTMLForm->Handle; //HTMLForm имя формы
sh.wFunc = FO_DELETE;
sh.pFrom = "C:\\mht";
sh.pTo = NULL;
sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;
sh.hNameMappings = 0;
sh.lpszProgressTitle = NULL;
SHFileOperation (&sh);
Удаление
Код:
Как еще можно удалить папку, чтобы быть не зависимой от имени формы? Ф-ция RemoveDir("C:\\mht"); не может удалить папку если она не пустая.
sh.hwnd=NULL;
[FONT=Times New Roman][SIZE=3]Я думала, что мой первый код, где было sh.hwnd=HTMLForm->Handle будет работать, но когда проверила - он выдал ошибку. (код был помещен в конце ф-ции OnCreateHTMLDocument). [/SIZE][/FONT]
[SIZE=3][FONT=Times New Roman]Когда написала sh.hwnd=NULL; ошибка пропала, но папка не удалялась. Посмотрела умную книжку и разобралась. :)[/FONT][/SIZE]
[FONT=Times New Roman][SIZE=3]Пришлось добавить одну переменную, потому что не хотел удалять без преобразования .c_str();[/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3] [/SIZE][/FONT]
[FONT=Times New Roman][SIZE=3]AnsiString Path = "C:\\mht";[/SIZE][/FONT]
[SIZE=3][FONT=Times New Roman]SHFILEOPSTRUCT sh;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.hwnd=NULL;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.wFunc = FO_DELETE;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.pFrom = Path.c_str();[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.pTo = NULL;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.hNameMappings = 0;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] sh.lpszProgressTitle = NULL;[/FONT][/SIZE]
[SIZE=3][FONT=Times New Roman] SHFileOperation (&sh);[/FONT][/SIZE]
[FONT=Times New Roman][SIZE=3] [/SIZE][/FONT]
[SIZE=3][FONT=Times New Roman]Теперь удаляет. :)[/FONT][/SIZE]