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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.036 c
15-1154426525
Kolan
2006-08-01 14:02
2006.08.27
Как сделать тесты для проверки кода.


15-1153944655
Труп Васи Доброго
2006-07-27 00:10
2006.08.27
Проблемы с установщиком


2-1155025500
Ega23
2006-08-08 12:25
2006.08.27
FindComponent и UpperCase


15-1154581771
Elen
2006-08-03 09:09
2006.08.27
Как работать с Asm файлами больше 5Мб?


2-1154517753
VitV
2006-08-02 15:22
2006.08.27
Delphi+Interbase. Cсылочная целостность таблиц из разных БД.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский