delphi如何得到指定文件夹的所有子文件
我想用delphi得到指定文件夹的所有子文件(exe可执行文件,不包括子文件夹的),将它储存在tstringlist中,希望代码简洁点,谢谢!!...
我想用delphi得到指定文件夹的所有子文件(exe可执行文件,不包括子文件夹的),将它储存在tstringlist中,希望代码简洁点,谢谢!!
展开
2个回答
展开全部
function FindFile(Path,Ext :string;var sl :TStringList):Boolean;
const
DIRATTR = DDL_READWRITE or DDL_READONLY or DDL_HIDDEN or DDL_ARCHIVE;
var
Files :string;
lb :TListBox;
begin
Result := False;
lb := TListBox.Create(Form1);
try
if Path[Length(Path)] <>野型 '\' then
Path := Path + '\';
if DirectoryExists(Path) then
begin
lb.Visible := false;
lb.Parent := Form1;
Files := Ext;
SetCurrentDirectory(PChar(Path));
SendMessage(lb.Handle, LB_DIR, DIRATTR, LParam(Files));
sl.AddStrings(lb.Items);
Result := True;
end;
except
end;
FreeAndNil(lb);
end;
调用颂缓猜:
var
sl :TStringList;
begin
sl := TStringList.Create;
try
if FindFile('C:\','哪埋*.*',sl) then
ShowMessage(sl.Text);
finally
FreeAndNil(sl);
end;
end;
const
DIRATTR = DDL_READWRITE or DDL_READONLY or DDL_HIDDEN or DDL_ARCHIVE;
var
Files :string;
lb :TListBox;
begin
Result := False;
lb := TListBox.Create(Form1);
try
if Path[Length(Path)] <>野型 '\' then
Path := Path + '\';
if DirectoryExists(Path) then
begin
lb.Visible := false;
lb.Parent := Form1;
Files := Ext;
SetCurrentDirectory(PChar(Path));
SendMessage(lb.Handle, LB_DIR, DIRATTR, LParam(Files));
sl.AddStrings(lb.Items);
Result := True;
end;
except
end;
FreeAndNil(lb);
end;
调用颂缓猜:
var
sl :TStringList;
begin
sl := TStringList.Create;
try
if FindFile('C:\','哪埋*.*',sl) then
ShowMessage(sl.Text);
finally
FreeAndNil(sl);
end;
end;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/猜巧历宽做/
遍历文件和文件夹可以使用FindFirst、FindNext和FindClose
procedure
GetFile(sl:
TStringList;
path:
string);
var
h:
THandle;
sr:
TSearchRec;
begin
sl.Clear;
h
:=
FindFirst(path
+
'\*.exe',
faAnyFIle,
sr);
while
h
=
0
do
begin
if
(sr.Name<>'.')
and
(sr.Name<>'穗搜..')
and
(ExtractFileExt(sr.Name)='.exe')
then
sl.Add(sr.Name);
h
:=
FindNext(sr);
end;
FindClose(sr);
end;
遍历文件和文件夹可以使用FindFirst、FindNext和FindClose
procedure
GetFile(sl:
TStringList;
path:
string);
var
h:
THandle;
sr:
TSearchRec;
begin
sl.Clear;
h
:=
FindFirst(path
+
'\*.exe',
faAnyFIle,
sr);
while
h
=
0
do
begin
if
(sr.Name<>'.')
and
(sr.Name<>'穗搜..')
and
(ExtractFileExt(sr.Name)='.exe')
then
sl.Add(sr.Name);
h
:=
FindNext(sr);
end;
FindClose(sr);
end;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询