我要查找某个目录下的某类扩展名的文件,但使用FindFirst结果似乎有点扩大化了.比如我要查找*.pas类型文件文件,结果返回中包括了类似xx.pas~,xx.pas_这样的文件,我传入的掩码是*.pas,希望返回的正确结果是a.pas,b.pas,但不应包括c.pas~,d.pas_.但从返回值看似乎是应用了掩码*.pas*或*.pas?,结果不正确啊,请教应该如何返回对应的正确的掩码*.pas的文件.示例代码:
procedure TForm1.btn1Click(Sender: TObject);
var
Search: TSearchRec;
Result: Integer;
dir, Mask: string;
s: string;
begin
dir := 'c:\y\';
Mask := '*.pas';
s := Dir + Trim(Mask);
Result := FindFirst(s, faAnyFile, Search);
try
while Result = 0 do
begin
if (Search.Attr and faDirectory) <> 0 then
Result := FindNext(Search)
else
begin
ShowMessage(Search.Name);
Result := FindNext(Search);
end;
end;
finally
FindClose(Search);
end;
end;
procedure TForm1.btn1Click(Sender: TObject);
var
Search: TSearchRec;
Result: Integer;
dir, Mask: string;
s: string;
begin
dir := 'c:\y\';
Mask := '*.pas';
s := Dir + Trim(Mask);
Result := FindFirst(s, faAnyFile, Search);
try
while Result = 0 do
begin
if (Search.Attr and faDirectory) <> 0 then
Result := FindNext(Search)
else
begin
ShowMessage(Search.Name);
Result := FindNext(Search);
end;
end;
finally
FindClose(Search);
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货