![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление файлов
Skif © (2002-08-28 09:07:00)Доброе время суток, Дамы и Господа!
Кто подскажет, почему не работает данный код.
From := ExtractFilepath(Application.ExeName) + "WorkObmen\*.*";
with SHFileOpStruct do
begin
Wnd := Handle;
wFunc := FO_DELETE;
pFrom := PChar(From);
fFlags := FOF_NOCONFIRMATION;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
SHFileOperation(SHFileOpStruct);
Skif (2002-08-28 13:03:00) [1]Господа, файлы *.* удаляет шустро и быстро. А как насчет *.!!! или *.?0?. Это к примеру. Масок м.б. очень много.
RV (2002-08-28 10:36:00) [2]а папку всю она не удаляет?
From := "c:\temp"
Ученик (2002-08-28 10:27:00) [3]>Lord Warlock
Работает на Win95 (наверно на 98, ME), на NT, 2000, XP не работает, pTo := PChar(From) не нужно.
Ученик (2002-08-28 10:14:00) [4]Насчет одного файла неправ, в MSDN написано, что может быть много файлов - каждое имя должно заканчиваться #0, в конце два #0
Ученик (2002-08-28 10:10:00) [5]>Lord Warlock © (28.08.02 10:06)
Какая операционка ?
Lord Warlock (2002-08-28 10:06:00) [6]
> Ученик © (28.08.02 10:02)
а попробуй без FillChar
Lord Warlock (2002-08-28 10:05:00) [7]
> Ученик © (28.08.02 09:53)
С FillChar тоже все работает и естественно грамотнее :)
Ученик (2002-08-28 10:02:00) [8]>Lord Warlock © (28.08.02 09:58)
Пробовал
procedure TForm1.Button1Click(Sender: TObject);
var
From : string;
SHFileOpStruct : TSHFileOpStruct;
begin
From := "c:\temp\*.*";
FillChar(SHFileOpStruct, SizeOf(SHFileOpStruct), 0);
with SHFileOpStruct do
begin
Wnd := Handle;
wFunc := FO_DELETE;
pFrom := PChar(From);
pTo := PChar(From);
fFlags := FOF_NOCONFIRMATION;
fAnyOperationsAborted := False;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
SHFileOperation(SHFileOpStruct);
end;
Ошибка при выполнении
Lord Warlock (2002-08-28 09:58:00) [9]
> Ученик © (28.08.02 09:53)
а ты попробуй с исходным кодом, все удаляет
Ученик (2002-08-28 09:53:00) [10]>Skif © (28.08.02 09:07)
Забыл еще добавить
FillChar(SHFileOpStruct, SizeOf(SHFileOpStruct), 0);
with SHFileOpStruct do
begin
иначе был Access Violation
>Lord Warlock © (28.08.02 09:30)
???
Lord Warlock (2002-08-28 09:30:00) [11]Надо добавить строчку
pTo := PChar(From);
Ученик (2002-08-28 09:21:00) [12]Если не ошибаюсь, FO_DELETE не поддерживает *.*, только по одному файлу