请问怎样获得指定文件目录下的所有文件名,然后依次添加到memo中?(50分)

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

mylixin

Unregistered / Unconfirmed
GUEST, unregistred user!
请问怎样获得指定文件目录下的所有文件名,然后依次添加到memo中?(急啊!!![:D])
 
procedure TSanFile.DoSan(const Path:string);
var
FSR:TSearchRec;
begin
if FindFirst(Path+'/*.*',faAnyFile,FSR)=0 then
try
FPath:='当前扫描路径:'+Path+'/';
Synchronize(AddLog);
FindNext(FSR);
while (FindNext(FSR)=0) and (not Terminated) do
begin
//AddLog;
if ((FSR.Attr and faDirectory)<>faDirectory) then //如果是文件,这个代码你自己修改
AddInf(Path+'/'+FSR.Name,FSR.Size)
else //如果是文件夹,自己加代码
DoSan(Path+'/'+FSR.Name);
end;
finally
FindClose(FSR);
end;
end;
 
递归函数!
 
能加点注释吗,有点看不懂,我是初学者,谢谢
 
如果要找c:/temp目录下的所有文件
DoSan('c:/temp');
Memo1是你要保存所有文件夹名字的TMemo控件
procedure DoSan(const Path:string);
var
FSR:TSearchRec;
begin
if FindFirst(Path+'/*.*',faAnyFile,FSR)=0 then
try
FindNext(FSR);
while (FindNext(FSR)=0) and (not Terminated) do
begin
//AddLog;
if ((FSR.Attr and faDirectory)<>faDirectory) then //如果是文件,这个代码你自己修改
Memo1.lines.add(FSR.Name)
else
//如果是文件夹,自己加代码
DoSan(Path+'/'+FSR.Name);
end;
finally
FindClose(FSR);
end;

 
如果去掉(not Terminated) ,就可以用了,请问是怎么回事
还有 if FindFirst(Path+'/*.*',faAnyFile,FSR)=0 这句是什么意思?
谢谢,帮了我的大忙
 
接受答案了.
 
不好意思,这段代码是我在一个线程里用的,所有有哪个not Terminated 我粗心了点,[^]
 
后退
顶部