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

Вниз

Count of File s   Найти похожие ветки 

 
ronyn   (2006-08-01 01:27) [0]

Как определить количество файлов в папке без использования громоздких процедур. Можно примерно - т.к. нужно для отображения процесса где кол-во файлов - это progress.max .
                                                 Заранее благодарен.


 
Slym ©   (2006-08-01 06:20) [1]

function CountFiles(const Where: string):integer;
var
 EMode:Dword;
 FD:TWin32FindData;
 hSearch:DWORD;
begin
 result:=0;
 EMode:=SetErrorMode(SEM_FAILCRITICALERRORS);
 try
   hSearch:=Windows.FindFirstFile(PChar(IncludeTrailingPathDelimiter(Where)+"*.*"),FD);
   if hSearch<>INVALID_HANDLE_VALUE then
   try
     repeat
       if FD.dwFileAttributes<>FILE_ATTRIBUTE_DIRECTORY then
         Inc(result);
     until not FindNextFile(hSearch,FD);
   finally
     Windows.FindClose(hSearch);
   end;
 finally
   SetErrorMode(EMode);
 end;
end;


 
ronyn   (2006-08-02 00:01) [2]

Спасибо!
Данный пример будет искать количество файлов папке. Но как сделать, что бы подпапки тожк учитывались и их контент тоже?


 
AntiUser ©   (2006-08-02 00:24) [3]

ronyn   (02.08.06 00:01) [2]

А если самому подумать?


 
Eraser ©   (2006-08-02 02:13) [4]

> [2] ronyn   (02.08.06 00:01)

использовать рекурсивный алгоритм поиска.


 
Slym ©   (2006-08-02 05:55) [5]

function CountFiles(const Where: string):integer;
var
EMode:Dword;
FD:TWin32FindData;
hSearch:DWORD;
begin
result:=0;
EMode:=SetErrorMode(SEM_FAILCRITICALERRORS);
try
  hSearch:=Windows.FindFirstFile(PChar(IncludeTrailingPathDelimiter(Where)+"*.*"),FD);
  if hSearch<>INVALID_HANDLE_VALUE then
  try
    repeat
      if FD.dwFileAttributes<>FILE_ATTRIBUTE_DIRECTORY then
        Inc(result)
      else
        Inc(result,CountFiles(IncludeTrailingPathDelimiter(Where)+FD.cFileName));

    until not FindNextFile(hSearch,FD);
  finally
    Windows.FindClose(hSearch);
  end;
finally
  SetErrorMode(EMode);
end;
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.054 c
15-1154099012
vain
2006-07-28 19:03
2006.08.27
AboutBox


6-1144755402
MadSnake
2006-04-11 15:36
2006.08.27
список подключений


1-1152863112
oleggar
2006-07-14 11:45
2006.08.27
decimalseparator


2-1155028521
Delphi basic
2006-08-08 13:15
2006.08.27
Отбор по дате в Access


15-1154422757
cyborg
2006-08-01 12:59
2006.08.27
В этом году жёсткому диску исполнится 50 лет