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

Вниз

Функция количества файлов   Найти похожие ветки 

 
Tirops   (2005-08-27 07:45) [0]

Есть ли в Delphi встроенная функция подсчета количества файлов в директории?


 
TUser ©   (2005-08-27 08:25) [1]

Нету. Используй FindFirst/FindNext.


 
Tirops   (2005-08-27 10:11) [2]

Почему-то не получается использовать. До пяти файлов считает правильно, но, например, шесть файлов считает опять как пять. Почему?


procedure Count;
var
 i:integer;
 sr : TSearchRec;
begin
if FindFirst("Files\*.*",faAnyFile,sr) = 0
then
 begin
  i:=1;
  repeat
   FindNext(sr);
   i:=i+1;
  until
   FindNext(sr)<>0;
 end;
Showmessage(inttostr(i));
FindClose(sr);
end;


 
Kot Andrei ©   (2005-08-27 10:33) [3]

Судя по всему у тебя в этой директории и есть пять файлов, потому что у меня твоя функция считает отлично...


 
MBo ©   (2005-08-27 10:36) [4]

Для чего в цикле дважды вызывается FindNext?


 
begin...end ©   (2005-08-27 11:25) [5]

function GetFilesCount(const Dir: string): Cardinal;
var
 SR: TSearchRec;
begin
 Result := 0;
 if FindFirst(Dir + "\*.*", faAnyFile, SR) = 0 then
   try
     repeat
       if SR.Attr and faDirectory = 0 then
         Inc(Result)
     until FindNext(SR) <> 0
   finally
     FindClose(SR)
   end
end.


 
Big Joe ©   (2005-08-27 12:47) [6]

procedure ListFileDir(Path: string; FileList: TStrings);
var
  SR: TSearchRec;
begin
  if FindFirst(Path + "*.*", faAnyFile, SR) = 0 then
  begin
    repeat
      if (SR.Attr <> faDirectory) then
      begin
        FileList.Add(SR.Name);
      end;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListFileDir("C:\WINDOWS\", ListBox1.Items);
end;


 
begin...end ©   (2005-08-27 12:49) [7]

> Big Joe ©   (27.08.05 12:47) [6]

> if (SR.Attr <> faDirectory) then

Ой.


 
Big Joe ©   (2005-08-27 12:53) [8]

> begin...end ©   (27.08.05 12:49) [7]
> ой ой ой


 
Tirops   (2005-08-27 14:58) [9]


> begin...end

Спасибо, функция работает отлично. Только можно для общего развития - а как это работает? Имеется в виду эта строчка:
if SR.Attr and faDirectory = 0 then...
Как идет перечисление файлов?


> Big Joe

Тоже огромное спасибо, процедура также отлично считает. Только тоже непонятно, как она переходит на следующий файл?


 
Tirops   (2005-08-27 15:06) [10]

Простите, можно не отвечать - все понял... :)))
СПАСИБО!



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

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

Наверх




Память: 0.49 MB
Время: 0.057 c
2-1124970321
grigory
2005-08-25 15:45
2005.10.09
Побайтное копирование файла!


1-1127122019
antikaban
2005-09-19 13:26
2005.10.09
конвертирование файла


3-1124864767
Jeka
2005-08-24 10:26
2005.10.09
бд через инет..


14-1126773261
Rentgen
2005-09-15 12:34
2005.10.09
Junior java developer :)


2-1125536397
Angel123
2005-09-01 04:59
2005.10.09
Кому не трудно, помогите с кодом