Вниз
Скачать: CL | DM;

удалить папку как   Найти похожие ветки 

← →
Arcalel   (2006-07-08 14:32) [0]

как удалить папку со всем её содержимым?


← →
begin...end ©   (2006-07-08 14:38) [1]

SHFileOperation


← →
Arcalel   (2006-07-08 16:45) [2]

а как ей пользоваться
пример пожалуйста


← →
Homo Sapiens ©   (2006-07-08 17:59) [3]

Нажми Shift+Delete потом OK


← →
Homo Sapiens ©   (2006-07-08 18:00) [4]

Вообще вопрос задан некорректно. Возможно, имелось в виду
"Как удалить... средствами делфи???"


← →
begin...end ©   (2006-07-08 18:19) [5]

> 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.


← →
Шпиён   (2006-07-08 18:43) [6]


> begin...end ©   (08.07.06 18:19) [5]

D6, WinXP Pro rus

Win32Check(SHFileOperation(SHFileOp) <> 0);

Папка удаляется, но после завершения выдается ошибка:

SystemError. Code: 6.
Неверный дескриптор.


← →
Шпиён   (2006-07-08 18:49) [7]


> Шпиён   (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 19:09) [8]

А в данном конкретном случае (SHFileOperation, флаг FOF_SILENT не установлен) - Win32Check вообще излишество. Если только Вы не хотите в случае ошибки увидеть два сообщения (одно выдаст SHFileOperation, второе - Win32Check).


← →
begin...end ©   (2006-07-08 19:23) [9]

> Шпиён   (08.07.06 18:49) [7]

Да, Вы правы, в знаке я ошибся.


← →
NEchto   (2006-07-08 22:09) [10]

Homo Sapiens ©   (08.07.06 18:00) [4]

>
> Вообще вопрос задан некорректно. Возможно, имелось в виду
> "Как удалить... средствами делфи???"


Вы нелепы
Это же форум по ДЕЛЬФИ
зачем уточнять?????



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.034 c
1-1150382715
StriderMan
2006-06-15 18:45
2006.07.30
Скомпилировать проет в двух вариантах


4-1144767975
que
2006-04-11 19:06
2006.07.30
WriteFile to Hid(USB)


1-1150117477
неважно
2006-06-12 17:04
2006.07.30
Наследник TStringGrid a


15-1151575109
Новичоккк
2006-06-29 13:58
2006.07.30
Перехватить SEND в конкретном приложении и заXORить пакет


15-1151671936
Mr tray
2006-06-30 16:52
2006.07.30
Windows NT




   Наверх