![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
удалить папку как
Arcalel © (2006-07-08 14:32:00)как удалить папку со всем её содержимым?
NEchto (2006-07-08 22:09:00) [1]Homo Sapiens © (08.07.06 18:00) [4]
>
> Вообще вопрос задан некорректно. Возможно, имелось в виду
> "Как удалить... средствами делфи???"
Вы нелепы
Это же форум по ДЕЛЬФИ
зачем уточнять?????
begin...end (2006-07-08 19:23:00) [2]> Шпиён (08.07.06 18:49) [7]
Да, Вы правы, в знаке я ошибся.
Шпиён (2006-07-08 19:09:00) [3]А в данном конкретном случае (SHFileOperation, флаг FOF_SILENT не установлен) - Win32Check вообще излишество. Если только Вы не хотите в случае ошибки увидеть два сообщения (одно выдаст SHFileOperation, второе - Win32Check).
Шпиён (2006-07-08 18:49:00) [4]
> Шпиён (08.07.06 18:43) [6]
Call Win32Check with the return value of a Windows API call that returns a Boolean to indicate success or failure. If the Windows API returns False (indicating failure), Win32Check calls RaiseLastWin32Error to raise an exception. If the Windows function returns True, Win32Check returns True.
Следовательно, правильно будет:
Win32Check(SHFileOperation(SHFileOp) = 0);
Шпиён (2006-07-08 18:43:00) [5]
> begin...end © (08.07.06 18:19) [5]
D6, WinXP Pro rus
Win32Check(SHFileOperation(SHFileOp) <> 0);
Папка удаляется, но после завершения выдается ошибка:
SystemError. Code: 6.
Неверный дескриптор.
begin...end (2006-07-08 18:19:00) [6]> Arcalel (08.07.06 16:45) [2]
uses ShellAPI;
var
SHFileOp: TSHFileOpStruct;
begin
FillChar(SHFileOp, sizeof(SHFileOp), 0);
with SHFileOp do
begin
wFunc := FO_DELETE;
pFrom := 'C:\TestFolder' + #0;
fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION;
end;
Win32Check(SHFileOperation(SHFileOp) <> 0);
end.
Этот код удалит папку в корзину. Если нужно мимо корзины, уберите флаг FOF_ALLOWUNDO.
Homo Sapiens (2006-07-08 18:00:00) [7]Вообще вопрос задан некорректно. Возможно, имелось в виду
"Как удалить... средствами делфи???"
Homo Sapiens (2006-07-08 17:59:00) [8]Нажми Shift+Delete потом OK
Arcalel (2006-07-08 16:45:00) [9]а как ей пользоваться
пример пожалуйста
begin...end (2006-07-08 14:38:00) [10]SHFileOperation