刚刚学delphi 要做一个查询文件的东东 可就是出错 哪位大侠给看看 function IsValidDir(SearchRec:TSearchRec):Boolean;//是否存在子目录函数
begin
if (SearchRec.Attr=16) and
(SearchRec.Name<>'.') and
(SearchRec.Name<>'..') then
Result:=True
else
Result:=False;
end;
Function TForm1.FindAllFileInADirectory(Directory:string;RetList:TStringList): TStringList;
var
SearchRec: TSearchRec;
subdir1: Tstrings;
i:integer;
begin
//找出所有下级子目录。
subdir1:=Tstringlist.Create; //字符串列表动态生成
if (FindFirst(Directory+'*.*',faDirectory, SearchRec)=0) then //$0000003f
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
showMessage(subdir1.Text);
while (FindNext(SearchRec) = 0) do
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
end;
showmessage(subdir1.Text);
end; if FindFirst(Directory+'\*.*', $0000003F, SearchRec) = 0 then
begin //查询当前路径下文件
if FindFirst(Directory+'\*.*', $0000003F, SearchRec) = 0 then
begin
repeat
RetList.Add(Directory +'\'+ SearchRec.Name);
until (FindNext(SearchRec) <> 0);
end;
FindClose(SearchRec);
end;
for i:=0 to subdir1.Count-1 do//遍历子目录查询文件
begin
FindAllFIleInADirectory(Directory+subdir1.Strings[i]+'\'+ SearchRec.Name,Retlist);
RetList.Add(Directory+'\'+ SearchRec.Name);
subdir1.Free;
end;
end;
begin
if (SearchRec.Attr=16) and
(SearchRec.Name<>'.') and
(SearchRec.Name<>'..') then
Result:=True
else
Result:=False;
end;
Function TForm1.FindAllFileInADirectory(Directory:string;RetList:TStringList): TStringList;
var
SearchRec: TSearchRec;
subdir1: Tstrings;
i:integer;
begin
//找出所有下级子目录。
subdir1:=Tstringlist.Create; //字符串列表动态生成
if (FindFirst(Directory+'*.*',faDirectory, SearchRec)=0) then //$0000003f
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
showMessage(subdir1.Text);
while (FindNext(SearchRec) = 0) do
begin
if IsValidDir(SearchRec) then
subdir1.Add(SearchRec.Name);
end;
showmessage(subdir1.Text);
end; if FindFirst(Directory+'\*.*', $0000003F, SearchRec) = 0 then
begin //查询当前路径下文件
if FindFirst(Directory+'\*.*', $0000003F, SearchRec) = 0 then
begin
repeat
RetList.Add(Directory +'\'+ SearchRec.Name);
until (FindNext(SearchRec) <> 0);
end;
FindClose(SearchRec);
end;
for i:=0 to subdir1.Count-1 do//遍历子目录查询文件
begin
FindAllFIleInADirectory(Directory+subdir1.Strings[i]+'\'+ SearchRec.Name,Retlist);
RetList.Add(Directory+'\'+ SearchRec.Name);
subdir1.Free;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货