Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.029 c
4-1083764801
gregi
2004-05-05 17:46
2004.06.06
Народ нужно изменить названия пунктов в свойствах файла


1-1085668023
killer
2004-05-27 18:27
2004.06.06
Клик по строке StringGrid-а


14-1084933297
ИМХО
2004-05-19 06:21
2004.06.06
You da man!


6-1082536527
Сережа550
2004-04-21 12:35
2004.06.06
Ссылки в новом окне


14-1084916190
Тупорылая_молодая_поросль
2004-05-19 01:36
2004.06.06
Хочу в орешник!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский