Форум: "Начинающим";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизФункция количества файлов Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c