//=====================================================================
// 函数名称: FindPathFiles
// 功能描述: 找指定目录下的文件
// 参 数: APath : 路径名称
// APropty : 属性名称(*.* | *.txt)
// AFiles : 文件列表
// IsAddPath: 是否增加路径
// 作者:
// 时间:
// 返 回 值:
// 说 明:
//=====================================================================
procedure FindPathFiles(const APath: string; AFiles: TStrings;
const APropty: String = '*.*'; IsAddPath: Boolean = False);
var
FS: TSearchRec;
FPath: String;
AddPath: string;
begin
FPath := IncludeTrailingPathDelimiter(APath);
AddPath := IfThen(IsAddPath, FPath, '');
if FindFirst(FPath + APropty, faAnyFile, FS) = 0 then
begin
repeat
if //(FS.Name <> '.') and (FS.Name <> '..') and
((FS.Attr and faDirectory) <> faDirectory) then
AFiles.Add(AddPath + FS.Name);
until FindNext(FS) <> 0;
SysUtils.FindClose(FS);
end;
end;
//=====================================================================
// 函数名称: FindAllFiles
// 功能描述: 找指定目录下的所有文件
// 参 数: APath : 路径名称
// APropty : 属性名称(*.* | *.txt)
// AFiles : 文件列表
// IsAddPath: 是否增加路径
// 作者:
// 时间:
// 返 回 值:
// 说 明:
//=====================================================================
procedure FindAllFiles(const APath: string; AFiles: TStrings;
const APropty: String = '*.*'; IsAddPath: Boolean = False);
var
FS: TSearchRec;
FPath: String;
AddPath: string;
begin
FPath := IncludeTrailingPathDelimiter(APath);
AddPath := IfThen(IsAddPath, FPath, '');
if FindFirst(FPath + APropty, faAnyFile, FS) = 0 then
begin
repeat
if (FS.Name <> '.') and (FS.Name <> '..') then
if ((FS.Attr and faDirectory) = faDirectory) then
FindAllFiles(FPath + FS.Name, AFiles, APropty, IsAddPath)
else
AFiles.Add(AddPath + FS.Name);
until FindNext(FS) <> 0;
SysUtils.FindClose(FS);
end;
end;
------------------------------------------------------------------------------------------------------
(1)查找指定扩展名的文件
procedure TForm1.Button1Click(Sender: TObject);
var
sr: TSearchRec;
begin
ListBox1.Items.Clear ;
if FindFirst('D:\work\*.*', faAnyFile, sr) = 0 then
begin
repeat
if pos('.xls',lowercase(sr.Name))>0 then
ListBox1.Items.Add(sr.Name) ;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
(2)查找某目录下的所有文件,非目录
procedure TForm1.Button2Click(Sender: TObject);
var
sr: TSearchRec;
begin
ListBox1.Items.Clear ;
if FindFirst('D:\work\*.*', faAnyFile, sr) = 0 then
begin
repeat
if (sr.Attr and faDirectory)=0 then
ListBox1.Items.Add(sr.Name+ ' '+intToStr(sr.Attr)) ;
until FindNext(sr) <> 0;
FindClose(sr);
end;
showMessage(intToStr(ListBox1.Items.count));
end;
(3)查找某目录下的所有目录,包含 “.” “..”
procedure TForm1.Button2Click(Sender: TObject);
var
sr: TSearchRec;
begin
ListBox1.Items.Clear ;
if FindFirst('D:\work\*.*', faAnyFile, sr) = 0 then
begin
repeat
if (sr.Attr and faDirectory)<>0 then
ListBox1.Items.Add(sr.Name+ ' '+intToStr(sr.Attr)) ;
until FindNext(sr) <> 0;
FindClose(sr);
end;
showMessage(intToStr(ListBox1.Items.count));
end;