如何在 ShowMesage 中(调用得到的文件名) ?
// 函数名称: 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; ShowMessage(AFiles); AFiles.Add(AddPath + FS.Name);
改为AFiles.Add(FS.Name);
得到就是文件名 看着感觉很高深,看来我基础还是没打好 其实我是建议抛弃这些旧查找文件方法的,
1,用 MFT 查找文件最快;
2,用 OmniThreadLibrary,用 pipeline 查找文件。
sail2000 发表于 2022-6-15 09:23
其实我是建议抛弃这些旧查找文件方法的,
1,用 MFT 查找文件最快;
2,用 OmniThreadLibrary,用 pipeli ...
@sail2000
不明白,求样例! {:301_974:}
@lies2014
为啥我在Delphi 11.1上 【 IfThen】这句报错呢? 没见过这语句 冥界3大法王 发表于 2022-6-15 10:55
@sail2000
不明白,求样例!
OmniThreadLibrary官方有例子:
https://github.com/gabr42/OmniThreadLibrary/tree/master/examples/folder%20scanner 冥界3大法王 发表于 2022-6-15 10:55
@sail2000
不明白,求样例!
IfThen是个函数,在StrUtils单元中,uses中要加上 其实FileUtil就有现成的FindAllFiles过程,直接用就可以
procedure FindAllFiles(AList: TStrings; const SearchPath: String;
const SearchMask: String = ''; SearchSubDirs: Boolean = True; DirAttr: Word = faDirectory;
MaskSeparator: char = ';'; PathSeparator: char = ';'); overload;
procedure TForm1.Button1Click(Sender: TObject);
var
AllFiles: TStringList;
APath: String;
begin
AllFiles := TStringList.Create;
APath := Edit1.Text;
try
FindAllFiles(AllFiles, APath, '*.*', false);
ShowMessage(Format('Found %d files', ));
ShowMessage(AllFiles);
finally
AllFiles.Free;
end;
end; lies2014 发表于 2022-6-15 17:27
其实FileUtil就有现成的FindAllFiles过程,直接用就可以
procedure FindAllFiles(AList: TStrings; cons ...
@lies2014
http://www.delphitop.com/html/wenjian/4488.html
最后用了这个版本,解决方案实在是多啊。
页:
[1]