procedure TfrmMain.FindFilesOnDisk(Dir : string);
var SR : TSearchRec;
Err : integer;
i, j : integer;
st : string;
begin
if (Dir[Length(Dir)] <> '\') then Dir := Dir + '\';
Err := FindFirst(Dir + '*.*', faAnyFile, SR);
while Err = 0 do
j := 0;
st := AnsiUpperCase(SR.Name);
if lbDirs.Items.Count > 0 then //Если в списке есть каталоги
//Проверить, нет ли среди них
for i := 0 to lbDirs.Items.Count - 1 do
if lbDirs.Items[i] = st then //найденного
j := 1;
break;
end; //if lbDirs.Items[i] = st then
if j = 0 then
if (SR.Name <> '.') and
(SR.Name <> '..') and
((SR.Attr and faDirectory) <> 0) then
inc(NumDir);
DirList.Add(Dir + st);
frmMain.sbMain.Panels[1].Text := IntToStr(NumDir);
pbFind.Position := NumDir;
Application.ProcessMessages;
FindFilesOnDisk(Dir + SR.Name);
end; //if (SR.Name <> '.') and
end; //if j = 0 then
Err := FindNext(SR);
end;
Объяснение:
СИАВРАПВЫП АКВЕГ ЕНГО КЕН ЦУК НГА ОАПРО ПАВ ПАВ ПВАП ВФВЫ ЫВААРОРОЛНГ КЕН6 ФЫВА К4
СИАВРАПВЫП АКВЕГ ЕНГО КЕН ЦУК НГА ОАПРО ПАВ ПАВ ПВАП ВФВЫ ЫВААРОРОЛНГ КЕН6 ФЫВА К4
СИАВРАПВЫП АКВЕГ ЕНГО КЕН ЦУК НГА ОАПРО ПАВ ПАВ ПВАП ВФВЫ ЫВААРОРОЛНГ КЕН6 ФЫВА К4
СИАВРАПВЫП АКВЕГ ЕНГО КЕН ЦУК НГА ОАПРО ПАВ ПАВ ПВАП ВФВЫ ЫВААРОРОЛНГ КЕН6 ФЫВА К4
СИАВРАПВЫП АКВЕГ ЕНГО КЕН ЦУК НГА ОАПРО ПАВ ПАВ ПВАП ВФВЫ ЫВААРОРОЛНГ КЕН6 ФЫВА К4СИАВРАПВЫП АКВЕГ ЕНГО КЕН ЦУК НГА ОАПРО ПАВ ПАВ ПВАП ВФВЫ ЫВААРОРОЛНГ КЕН6 ФЫВА К4
procedure TfrmMain.FindFilesOnDisk(Dir : string);
var SR : TSearchRec;
Err : integer;
i, j : integer;
st : string;
begin
if (Dir[Length(Dir)] <> '\') then Dir := Dir + '\';
Err := FindFirst(Dir + '*.*', faAnyFile, SR);
while Err = 0 do
begin
j := 0;
st := AnsiUpperCase(SR.Name);
if lbDirs.Items.Count > 0 then //Если в списке есть каталоги
//Проверить, нет ли среди них
for i := 0 to lbDirs.Items.Count - 1 do
if lbDirs.Items[i] = st then //найденного
begin
j := 1;
break;
end; //if lbDirs.Items[i] = st then
if j = 0 then
begin
if (SR.Name <> '.') and
(SR.Name <> '..') and
((SR.Attr and faDirectory) <> 0) then
begin
inc(NumDir);
DirList.Add(Dir + st);
frmMain.sbMain.Panels[1].Text := IntToStr(NumDir);
pbFind.Position := NumDir;
Application.ProcessMessages;
FindFilesOnDisk(Dir + SR.Name);
end; //if (SR.Name <> '.') and
end; //if j = 0 then
Err := FindNext(SR);
end;
end;
Объяснение: