我想请问一个关于文件搜索的问题!(100分)

  • 主题发起人 主题发起人 aa9
  • 开始时间 开始时间
A

aa9

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,我相创建个程序,当按下个button下就立即从edit1中给出的路

径开始,搜索edit2中要搜索的文件类型,将edit1的给出路径中内的目录及相关

文件用动态生成memu方法显示出来,按所属目录各自归于不同的子菜单中.

请高手们帮帮忙!!!
 
procedure TForm1.findfiles(APath:string;filekind:string);//apath为搜索路径
var // filekind为文件类型如txt
FSearchRec,DSearchRec:TSearchRec;
FindResult:integer;
begin
findresult:=findfirst(Apath,faanyfile,fsearchrec);
try
while findresult=0 do
begin
if (fsearchrec.name<>'.')and(fsearchrec.name<>'..') then
begin
//文件目录名为fsearchrec.Name,添加到菜单中
end;
findresult:=findnext(fsearchrec)
end;
findresult:=findfirst(apath+'*.'+filekind,fadirectory,dsearchrec);
while findresult=0 do
findresult:=findnext(dsearchrec);
finally
findclose(fsearchrec);
end;
end;
 
; 我试过不行啊!!可能我说得不清楚,例如IE,它的收藏菜单是如何做成按文件目录所属的

目录放在同一子菜单中!!
 
我刚试验了一个类似的过程,利用嵌套找出给定路径下包括子目录的所有文件
procedure FindFileProc(aFindPath : String);
var
aFind : TSearchRec;
begin
findfirst(aFindPath + '/*.*', faAnyFile, aFind);
repeat
inc(c);
form1.button1.Caption := inttostr(c);
if (aFind.Name <> '.')
and (aFind.Name <> '..') then
begin
if (aFind.Attr and faDirectory) <> 0 then
begin
form1.RichEdit1.lines.add(aFindPath + '/' + aFind.Name + '<DIR>');
FindFileProc(aFindPath + '/' + aFind.Name)
end
else
form1.RichEdit1.lines.add(aFindPath + '/' + aFind.Name);
end;
until 0 <> findnext(aFind);
findclose(aFind);
end;
你稍改一下,自己加入动态创建菜单的处理方法就可以了
 
多人接受答案了。
 
后退
顶部