Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Организация фонового удаления каталогов с содержимым   Найти похожие ветки 

 
DennisLNC ©   (2004-04-26 12:52) [0]

Помогите пожалуста организовать фоновое удаление папок со всем содержимым (тут наверно придется создать отдельный поток ?)
заранее благодарен


 
Anatoly Podgoretsky ©   (2004-04-26 13:02) [1]

Фоновое это что - не видимо или паралельно.
ShFileOperation или так или в отдельном кодовом потоке.


 
DennisLNC ©   (2004-04-27 15:51) [2]

function DeleteDir(Dir  : string)  : boolean;
Var
Found  : integer;
SearchRec : TSearchRec;
begin
 result:=false;
 if IOResult<>0 then ;
 ChDir(Dir);
 if IOResult<>0 then begin
  ShowMessage("Не могу войти в каталог: "+Dir); exit;
 end;
 Found := FindFirst("*.*", faAnyFile, SearchRec);
 while Found = 0 do
 begin
  if (SearchRec.Name<>".")and(SearchRec.Name<>"..") then
   if (SearchRec.Attr and faDirectory)<>0 then begin
    if not DeleteDir(SearchRec.Name) then exit;
   end else
    if not DeleteFile(SearchRec.Name) then begin
     ShowMessage("Не могу удалить файл: "+SearchRec.Name); exit;
    end;
   Found := FindNext(SearchRec);
 end;
 FindClose(SearchRec);
 ChDir(".."); RmDir(Dir);
 result:=IOResult=0;
end;

создаю поток который удаляет папки
в 98 работает нормально
хр выдает ошибку при удалении но удаяет и говорит недопустимый дескриптор окна при закрытии


 
DennisLNC ©   (2004-04-27 15:53) [3]

поток вызывает  function DeleteDir


 
Reindeer Moss Eater ©   (2004-04-27 15:58) [4]

Убери ShowMessage совсем или замени на MEssageBox


 
Digitman ©   (2004-04-27 16:00) [5]


> создаю поток который удаляет папки
> в 98 работает нормально
> хр выдает ошибку при удалении но удаяет и говорит недопустимый
> дескриптор окна при закрытии


нормально это заведомо работать не может, потому что Showmessage - потоконебезопасная процедура


 
DennisLNC ©   (2004-04-28 14:33) [6]

попробую  спасибо

А не подскажете как организовать это же удаление но со строкой прогресса удаления ??
И еще не подскажете где можно чего почитать про то что можно ипользовать в потоках а что нет ?


 
DennisLNC ©   (2004-04-29 17:42) [7]

Помогло Api это вещь
так как же организовать строку прогресса удаления может сначала узнать обьем и изходя от этого начать плясать ?


 
Mim1 ©   (2004-04-29 18:59) [8]

На страничке Anatoly Podgoretsky ©   (26.04.04 13:02) [1] были статьи про синхранизацию потоков.


 
panov ©   (2004-04-29 19:00) [9]

>DennisLNC ©   (29.04.04 17:42) [7]
Заполни сначала StringList именами, потом в цикле удаляй...



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

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.056 c
14-1085057631
Соловьев
2004-05-20 16:53
2004.06.06
http://www.grineflip.dk/funstuff/kill/kill.htm#


14-1084776900
Vlad Oshin
2004-05-17 10:55
2004.06.06
http://www.exler.ru/novels/wife.htm ;)


6-1082059289
fatman
2004-04-16 00:01
2004.06.06
TServerSocket внутри NT- сервиса


14-1084798394
Kerk
2004-05-17 16:53
2004.06.06
Запуздырить иконку в трей


4-1082703033
Александр_33
2004-04-23 10:50
2004.06.06
Текст в окне DOS-приложения