Форум: "Прочее";
Текущий архив: 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.049 c