Вниз
Скачать: 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 вся ветка

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



Память: 0.47 MB
Время: 0.02 c
14-1085119972
Alex_x
2004-05-21 10:12
2004.06.06
тестирование своих программ


1-1085507296
td
2004-05-25 21:48
2004.06.06
большой вопрос про DLL


14-1084561351
Servelat
2004-05-14 23:02
2004.06.06
Физика


6-1080821244
a3a3ello
2004-04-01 16:07
2004.06.06
Как отправить по e-mail прицепленный файл ?


14-1085085506
тихий вовочка
2004-05-21 00:38
2004.06.06
глупые вопросы по проектированию




   Наверх