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

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



Память: 0.46 MB
Время: 0.03 c
15-1154206733
Германн
2006-07-30 00:58
2006.08.27
"Поиск" и возврат в форум


2-1154609312
Max.66RUS
2006-08-03 16:48
2006.08.27
Как получить список запущенных процессов...


2-1154513346
o_serg
2006-08-02 14:09
2006.08.27
Tframe с TactionList проблема


15-1154018289
ronyn
2006-07-27 20:38
2006.08.27
Date change of File s


15-1154358587
Ketmar
2006-07-31 19:09
2006.08.27
вот так c memory leaks борются




   Наверх