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

Вниз

Сканирование папок и файлов в потоке   Найти похожие ветки 

 
Sergey_R ©   (2005-10-19 12:12) [0]

Подскажите, пожалуйста, как реализовать добавление файлов из определенной папки (включая вложенные) в потоке. Мне нужно выводить количество уже найденных файлов на какую-нибудь форму. С выводом вроде понятно, как сделать. А вот как засунуть эту функцию в поток?


procedure  FindAllFiles(List:  TStrings;  Dir,  Mask:  string);
procedure  ScanDir(Dir:  string);
var SR:  TSearchRec;
begin
   Dir  :=  IncludeTrailingBackSlash(Dir);
   if  FindFirst(Dir  +  "*.*",  faAnyFile  -  faVolumeID,  SR)  =  0
  then
     try
        repeat
          if  (SR.Name  <>  ".")  and  (SR.Name  <>  "..")  then
            if  SR.Attr  and  faDirectory  <>  0
              then ScanDir(Dir  +  SR.Name)
              else if  MatchesMask(SR.Name,  Mask)  then
                     begin
                       List.Add(Dir  +  SR.Name);
                       inc(kol);
                                               end;

        until  FindNext(SR)  <>  0;
     finally
       FindClose(SR);
 end;

end;

begin
    if  (List  =  nil)  or  not  DirectoryExists(Dir)  or  (Mask  =  "")  then
        raise  Exception.Create("Invalid  parameter");
        ScanDir(Dir)
end;



переменная kol  в данном случае объявлена глобально, и именно её мне нужно куда-нибудь вывести. Пробовал создать поток, куда вставил эти процедуры, но Synchronize почему-то доступно только в Thread.Execute!


 
clickmaker ©   (2005-10-19 12:29) [1]


> Synchronize почему-то доступно только в Thread.Execute!

она доступна из любого метода потока


 
Digitman ©   (2005-10-19 12:36) [2]


> как засунуть эту функцию в поток?


ну как ты обычно "суешь", так и "засунь".

или призадумайся. что и зачем "суешь" ...


 
Sergey_R ©   (2005-10-19 13:31) [3]

2 clickmaker
Спасибо! Оказалось, что просто надо прописать в классе потока нужную функцию и Synchronize заработал!



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

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

Наверх




Память: 0.47 MB
Время: 0.054 c
14-1129567066
ArtemESC
2005-10-17 20:37
2005.11.06
Эффективный алгоритм


3-1126853678
ChILP
2005-09-16 10:54
2005.11.06
Проблема с Crystal Reports


1-1129631371
BorlandC
2005-10-18 14:29
2005.11.06
Как проверить что файл уже открыт?


4-1125764005
viv-x
2005-09-03 20:13
2005.11.06
Работа с TAPI на Delphi под Win 98 и Win XP


8-1115301949
Дельфин
2005-05-05 18:05
2005.11.06
Ошибка проигрывания avi файлов