uses crt, dos;
var OpisPliku : SearchRec;
Begin
clrscr;
FindFirst('C:\*.*', AnyFile, OpisPliku); { znajdź pierwszy }
{ plik }
while DosError = 0 do { szukaj aż do wyczerpania plików }
begin
FindNext(OpisPliku); { znajdź kolejny plik }
writeln(OpisPliku.Name);
end;
readln;
End.
Chciałbym aby writeln(OpisPliku.Name); wyświetlało pełną ścieżkę a nie tylko nazwę pliku, głowię się z tym juz godzinę i jakoś nie moge sobie dać rady.
procedure Files(Path:String;Recurence:Boolean);
var Sr:SearchRec;
begin
if FindFirst(Path+'*.*',AnyFile,Sr)=0 then
begin
while true do
begin
if (faDirectory and Sr.Attr)=0 then writeln(Path+Sr.Name)
else if (Sr.Name[1]<>'.')and(Recurence) then Files(Path+Sr.Name+'\',Recurence);
if FindNext(Sr)<>0 then Break;
end;
FindClose(Sr);
end;
end;
...
Files('C:\',true);
Program fdsfsd;
uses crt, dos;
procedure Files(Path:String;Recurence:Boolean);
var Sr:SearchRec;
begin
if FindFirst(Path+'*.*',AnyFile,Sr)=0 then
begin
while true do
begin
if (faDirectory and Sr.Attr)=0 then writeln(Path+Sr.Name)
else if (Sr.Name[1]<>'.')and(Recurence) then Files(Path+Sr.Name+'\',Recurence);
if FindNext(Sr)<>0 then Break;
end;
FindClose(Sr);
end;
end;
Begin
clrscr;
Files('C:\',true);
readln;
End.
Mam nieco nowszy kompilator, więc mogą być pewne problemy, z pisaniem “na sucho”.
procedure Files(Path:String;Recurence:Boolean);
var Sr:SearchRec;
begin
FindFirst(Path+'*.*',AnyFile,Sr);
if DosError=0 then
begin
while true do
begin
if (Directory and Sr.Attr)=0 then writeln(Path+Sr.Name)
else if (Sr.Name[1]<>'.')and(Recurence) then Files(Path+Sr.Name+'\',Recurence);
FindNext(Sr);
if DosError<>0 then Break;
end;
FindClose(Sr);
end;
end;
Nie jestem pewien co do Directory, ale znajdziesz w opisie FindFirst lub/oraz SearchRec.