Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Количество файлов! [D6]


ers ©   (2003-04-14 13:48:00) 

Как получить количество файлов в определенной папке, код плиз!


max2057   (2003-04-15 13:52:00) [1]

F.dwFileAttributes<>FILE_ATTRIBUTE_DIRECTORY - неправильно
надо:
F.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY
потому что у каталога кроме того что он каталог может быть другой аттрибут(SYSTEM HIDDEN etc.) и может получится что каталог-на самом деле каталог но условие не выполнится так как F.dwFileAttributes содержит еще что-то кроме FILE_ATTRIBUTE_DIRECTORY


Songoku   (2003-04-14 23:32:00) [2]

function FilesCount(Path:String):Integer;
var
F: TWIN32FindData;
Fil:THandle;
begin
Result:=0;
Fil:=FindFirstFile(Pchar(Path+"*.*"), F);
while FindNextFile(Fil,F) = true do begin
if F.dwFileAttributes<>FILE_ATTRIBUTE_DIRECTORY then
Result:=Result+1;
end;
Windows.FindClose(Fil);
end;


Song   (2003-04-14 18:58:00) [3]

LB_DIR + TListBox.Count


max2057   (2003-04-14 17:51:00) [4]

procedure FindFiles(dir:string;mask:string;var l:TStringList);
var
hF : THandle ;
fd : WIN32_FIND_DATA;
begin
if mask="" then exit ;
try
hF := FindFirstFile(pchar(dir+"\*.*"),fd);
if hF<>INVALID_HANDLE_VALUE then begin
if not boolean(fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)
and (MatchesMask(fd.cFileName,mask)) then
l.Add(fd.cFileName);
while FindNextFileA(hF,fd) <> false do
if not boolean(fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY)
and (MatchesMask(fd.cFileName,mask)) then
l.Add(fd.cFileName);
end;
finally
Windows.FindClose(hF);
end;
end;

Немного переделай только


malkolinge   (2003-04-14 17:43:00) [5]

FindFirst
FindNext
И считать :)


Anatoly Podgoretsky   (2003-04-14 13:53:00) [6]

Код в FAQ


Наверх

Титульная страница Поиск, карта сайта Написать письмо