Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

очистить папку темп(текущий пользователь) [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 в цикле для всех файлов рекурсивно


Наверх

Титульная страница Поиск, карта сайта Написать письмо