文件查找(100分)

  • 主题发起人 主题发起人 mossmud
  • 开始时间 开始时间
M

mossmud

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样查找莫一个指定目录下的所有文件,包括子目录。并把它放到一个stringlist里面?
我搜索过以前的解答,好像不行。
sL:TStringList;
procedure SearchFile(path:string);
var
sr: TSearchRec;
begin
if FindFirst(path+'/*',faanyfile, sr) = 0 then
begin
if (sr.Attr and (faDirectory or faVolumeID))<> 0 then
SearchFile(path+'/'+sr.name)
else sL.add(sr.name); //如何知道这个文件的路径???
while FindNext(sr) = 0 do
begin
if (sr.Attr and (faDirectory or faVolumeID))<> 0 then
SearchFile(path+'/'+sr.name)
else sL.add(sr.name);
end;
end;
findclose(sr);
end;
 
1。死了!以前做的时候好像记得找的时候会把.和..找出来的。你不去处理,不死才怪!
2。找个变量把当前路径记录下来,再加上文件名就是了。
 
;我建议把路径的查找和文件的查找分开,如果是路径判断是否 . 或者 .. ,如果是
不递归处理,否则递归处理,
如果是文件则添加到你的stringlist.
如果还是解决不了,可以mail : xueminliu@263.net .我寄给你原码
 
也想知道
 
sL:TStringList;
procedure SearchFile(path:string);
var
sr: TSearchRec;
begin
if FindFirst(path+'/*.*',faanyfile, sr) = 0 then
repeat
if (sr.name<>'.) and (sr.name<>'..) then
if (sr.Attr and fadirectory) = fadirectory then
SearchFile(path+'/'+sr.name)
else
sl.add(path+'/'+sr.name);
until findnext(sr)<>0
findclose(sr);
end;
 
接受答案了.
 
后退
顶部