英雄啊,救救我吧!在线等....

Sir_Java 2003-10-21 01:30:00
怎样找出一个指定路径下的所有文件夹及文件?
...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pankun 2003-10-21
  • 打赏
  • 举报
回复
转贴子给你参考:

查找所有文件
procedure findall(disk,path: String; var fileresult: Tstrings);
var

fpath: String;

fs: TsearchRec;

begin

fpath:=disk+path+'\*.*';

if findfirst(fpath,faAnyFile,fs)=0 then

begin

if (fs.Name<>'.')and(fs.Name<>'..') then

if (fs.Attr and faDirectory)=faDirectory then

findall(disk,path+'\'+fs.Name,fileresult)

else

fileresult.add(disk+strpas(strupper(pchar(path)))+'\'+strpas(

strupper(pchar(fs.Name)))+'('+inttostr(fs.Size)+')');

while findnext(fs)=0 do

begin

if (fs.Name<>'.')and(fs.Name<>'..') then

if (fs.Attr and faDirectory)=faDirectory then

findall(disk,path+'\'+fs.Name,fileresult)

else

fileresult.add(disk+strpas(strupper(pchar(path)))+'\'+str

pas(strupper(pchar(fs.Name)))+'('+inttostr(fs.Size)+')');

end;

end;

findclose(fs);

end;

procedure DoSearchFile(Path: string; Files: TStrings = nil);

var

Info: TSearchRec;

procedure ProcessAFile(FileName: string);

begin

if Assigned(PnlPanel) then

PnlPanel.Caption := FileName;

Label2.Caption := FileName;

end;

function IsDir: Boolean;

begin

with Info do

Result := (Name <> '.') and (Name <> '..') and ((attr and fadirectory) = fadirectory);

end;

function IsFile: Boolean;

begin

Result := not ((Info.Attr and faDirectory) = faDirectory);

end;

begin

Path := IncludeTrailingBackslash(Path);

try

if FindFirst(Path + '*.*', faAnyFile, Info) = 0 then

if IsFile then

ProcessAFile(Path + Info.Name)

else if IsDir then DoSearchFile(Path + Info.Name);

while FindNext(Info) = 0 do

begin

if IsDir then

DoSearchFile(Path + Info.Name)

else if IsFile then

ProcessAFile(Path + Info.Name);

Application.ProcessMessages;

if QuitFlag then Break;

Sleep(100);

end;

finally

FindClose(Info);

end;

end;

 


hongqi162 2003-10-21
  • 打赏
  • 举报
回复
能不能说得清楚点?

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧