filePath := ExtractFilePath(application.ExeName) + '\rpt\'; try Finished := FindFirst(filePath + '*.*', faAnyfile, Found); while Finished = 0 do begin if (Found.Name <> '.') and (Found.Name <> '..') then begin if ExtractFileExt(Found.Name) = '.xml' then begin
功能为取到某目录下的某种类型的文件,并放放列表中,你只要改改就好了 procedure SearchFileExList(const ADir, vType: string; var AFileItems: TStringList); var vFound: TSearchRec; vSourceDirs, vDestDirs: TStrings; vFinished, i: integer; vStopSearch: Boolean; begin vStopSearch := False; vSourceDirs := TStringList.Create; vDestDirs := TStringList.Create; try vFinished := FindFirst(ADir + '*.*', 63, vFound); while (vFinished = 0) and not (vStopSearch) do begin if (vFound.Name <> '.') and (vFound.Name <> '..') then begin if (vFound.Attr and faDirectory) = faDirectory then begin //取得子目录名 vSourceDirs.Add(ADir + vFound.Name + '\'); end else begin //只取当前目录下的文件名 if (vFound.Attr and faDirectory) <> faDirectory then begin if (vFound.Name <> '') and (UpperCase(ExtractFileExt(vFound.Name)) = UpperCase(vType)) then begin AFileItems.Add(ADir + vFound.Name) end; end; end; end; vFinished := FindNext(vFound); end; FindClose(vFound); // 取得子目录中的文件名 if not vStopSearch then for i := 0 to vSourceDirs.Count - 1 do begin SearchFileExList(vSourceDirs[i], vType, AFileItems); end; finally FreeAndNil(vSourceDirs); FreeAndNil(vDestDirs); end;end;
filePath := ExtractFilePath(application.ExeName) + '\rpt\';
try
Finished := FindFirst(filePath + '*.*', faAnyfile, Found);
while Finished = 0 do
begin
if (Found.Name <> '.') and (Found.Name <> '..') then
begin
if ExtractFileExt(Found.Name) = '.xml' then
begin
end;
end;
Finished := FindNext(Found);
end;
finally
FindClose(Found);
end;
procedure SearchFileExList(const ADir, vType: string; var AFileItems: TStringList);
var
vFound: TSearchRec;
vSourceDirs, vDestDirs: TStrings;
vFinished, i: integer;
vStopSearch: Boolean;
begin
vStopSearch := False;
vSourceDirs := TStringList.Create;
vDestDirs := TStringList.Create;
try
vFinished := FindFirst(ADir + '*.*', 63, vFound);
while (vFinished = 0) and not (vStopSearch) do
begin
if (vFound.Name <> '.') and (vFound.Name <> '..') then
begin
if (vFound.Attr and faDirectory) = faDirectory then
begin
//取得子目录名
vSourceDirs.Add(ADir + vFound.Name + '\');
end
else
begin
//只取当前目录下的文件名
if (vFound.Attr and faDirectory) <> faDirectory then begin
if (vFound.Name <> '') and (UpperCase(ExtractFileExt(vFound.Name)) = UpperCase(vType)) then
begin
AFileItems.Add(ADir + vFound.Name)
end;
end;
end;
end;
vFinished := FindNext(vFound);
end;
FindClose(vFound);
// 取得子目录中的文件名
if not vStopSearch then
for i := 0 to vSourceDirs.Count - 1 do
begin
SearchFileExList(vSourceDirs[i], vType, AFileItems);
end; finally
FreeAndNil(vSourceDirs);
FreeAndNil(vDestDirs);
end;end;