一家公司面试的题目,广征答案,最好的给分!最好给出源码.

blacksun2000 2004-10-10 12:39:18
编程查找指定目录下所有EXE文件,并将其全路径存入Result.txt中,要求用递归。
...全文
190 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
KevinXXXX 2004-10-10
  • 打赏
  • 举报
回复
去看看delphi自己的help,找findfirst,然后点example,改改就能用
restboy 2004-10-10
  • 打赏
  • 举报
回复
网上类似的例子很多啊,而且我也想不出有什么优化的算法可以提高效率。
firstshine 2004-10-10
  • 打赏
  • 举报
回复
procedure TForm1.FindExe(sDirectory: String;sl:TStringList);
var
sr: TSearchRec;
sPath,sExt,sFile: String;
begin
//检查目录名后面是否有 '\'
if Copy(sDirectory,Length(sDirectory),1) <> '\' then
sPath := sDirectory + '\'
else
sPath := sDirectory;

//------------------------------------------------------------------
if FindFirst(sPath+'*.*',faAnyFile, sr) = 0 then
begin
repeat
sFile:=Trim(sr.Name);
if sFile='.' then Continue;
if sFile='..' then Continue;

sFile:=sPath+sr.Name;
if (sr.Attr and faDirectory)<>0 then
FindExe(sFile,sl)
else if (sr.Attr and faAnyFile) = sr.Attr then
begin
sExt:=UpperCase(ExtractFileExt(sFile));
if sExt='.EXE' then
sl.Add(sFile);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
//------------------------------------------------------------------
end;

procedure TForm1.Button1Click(Sender: TObject);
var
sl:TStringList;
begin
sl:=TStringList.Create;
try
FindExe('D:\Program',sl);
sl.SaveToFile('C:\Result.txt');
finally
sl.Free;
end;
end;
zhouhua206 2004-10-10
  • 打赏
  • 举报
回复
枚举目录下的所有文件和文件夹
判断:
1.如果是文件,检查扩展名是否为".exe"如果是则取其路径存入Result.txt中,否则忽略,继续直到
枚举完毕
2.如果是文件夹(目录),则递归调用,对其进行枚举
3.枚举结束后做清理工作,保存并关闭Result.txt

有现成的API可用于枚举指定目录下的文件和文件夹,代码懒得写了
相关推荐
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2004-10-10 12:39
社区公告
暂无公告