![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
очистить папку темп(текущий пользователь) [D7, WinXP]
Prov © (2004-09-21 16:11:00)Уважаемые мастера, подскажите, пожалуйста....
Есть такой вот код:
procedure EraseTemp;
var Buffer: array[0..255] of PChar; lpsz: cardinal;
SH:TSHFileOpStruct; TMPString: PChar;
begin
lpsz:= SizeOf(Buffer);
windows.GetTempPath(lpsz, @buffer);
FillChar(SH, SizeOf(SH), 0);
SH.Wnd:= 0;
SH.wFunc:= FO_DELETE;
TMPString:= PChar(PChar(@Buffer) + '\*.*');
SH.pFrom:= TmpString;
SH.fFlags:= FOF_NOCONFIRMATION or FOF_SILENT;
SH.fAnyOperationsAborted:= FALSE;
SHFileOperation(SH);
end;
который чистит темп текущего юзверя... Дело в том, что не удаляются папки, только файлы. И ещё: если на каком-то этапе очистки файлов возникает acces denied(тобишь, файл занят другим приложением) - ВСЕ !!! Процедура дальше не работает, а останавливается на том, что уже почистила, и не удаляет остальные файлы, к которым есть доступ на удаление. Подскажите, как быть.
Заранее благодарен.
Prov (2004-09-21 17:11:00) [1]И если можете, подскажите, пожалуйста, как найти путь к папке КУКИ ?
Prov (2004-09-21 17:07:00) [2]а через ф-цию SHFileOperation такого нельзя сделать ?
clickmaker (2004-09-21 17:04:00) [3]
> [3] Prov (21.09.04 16:53)
В DeleteFile нельзя передавать маску, только путь к файлу.
FindFirstFile / FindNextFile рекурсивно + DeleteFile
В итоге останутся только неудаляемые
Prov (2004-09-21 16:53:00) [4]Так, папки моя процедура удаляет... Но, если перед папкой она не может удпалить какой-то файл - все, дальше ничего не удаляет..
Пожалуйста, подскажите, как быть, чтобы в заданной папке осталишь лишь неудаляемые на данный момент файлы
Prov (2004-09-21 16:36:00) [5]прошу прощения.
пишу так:
DeleteFile('D:\1\*.*');
А на диске Д в папке 1 все равно остаются все файлы, подскажите, будьте добры
clickmaker (2004-09-21 16:13:00) [6]DeleteFile в цикле для всех файлов рекурсивно