如何获取某一个目录下的所有文件和目录,如果是文件的话,如何得到文件的完整名称。我写了一段代码,可是只能显示出一个目录或文件。
msgstr='c:\*.*';
if findfirst(msgstr,faAnyFile,SearchRecord)=0 then
begin
if (SearchRecord.Attr and faDirectory )<>0 then
dirtext:='目录:'+SearchRecord.Name+'#10';
//MessageBox(Handle,pChar(SearchRecord.Name),'提示',0);
if (SearchRecord.Attr and faAnyFile)<> 0 then
dirtext:='文件:'+SearchRecord.Name +'#10';
end;
while findnext(SearchRecord)=0 do
begin
if (SearchRecord.Attr and faDirectory)<>0 then
dirtext:='目录:'+SearchRecord.Name+'#10';
if(SearchRecord.Attr and faAnyFile)<>0 then
dirtext:='文件:'+SearchRecord.Name +'#10';
end;
findclose(SearchRecord);
msgstr='c:\*.*';
if findfirst(msgstr,faAnyFile,SearchRecord)=0 then
begin
if (SearchRecord.Attr and faDirectory )<>0 then
dirtext:='目录:'+SearchRecord.Name+'#10';
//MessageBox(Handle,pChar(SearchRecord.Name),'提示',0);
if (SearchRecord.Attr and faAnyFile)<> 0 then
dirtext:='文件:'+SearchRecord.Name +'#10';
end;
while findnext(SearchRecord)=0 do
begin
if (SearchRecord.Attr and faDirectory)<>0 then
dirtext:='目录:'+SearchRecord.Name+'#10';
if(SearchRecord.Attr and faAnyFile)<>0 then
dirtext:='文件:'+SearchRecord.Name +'#10';
end;
findclose(SearchRecord);
var
F : TSearchRec;
SearchResult : integer;
begin
SearchResult := FindFirst(sPath + '\*.*', faAnyFile,F);
While SearchResult = 0 do
begin
if (F.Attr = faDirectory) and (F.name <> '.') and (F.Name <> '..') then
begin
MySearchExtFile(sPath + '\' + F.name, EXT);
end
else
begin
if UpperCase(ExtractFileExt(F.Name)) = Ext then
Form1.ListBox1.items.add(sPath + '\' + F.name);
end;
SearchResult := FindNext(F);
end;
FindClose(F);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
MySearchExtFile('D:\Temp', '.DOC');
end;
TFileListBox.Directory