求教 怎么遍历取到子文件夹名?
uses
SysUtils, StrUtils, Masks;
function MakeFileList(Path, FileExt: string): TStringList;
var
sch: TSearchrec;
begin
Result := TStringlist.Create;
if rightStr(trim(Path), 1) <> '\' then
Path := trim(Path) + '\'
else
Path := trim(Path);
if not DirectoryExists(Path) then
begin
Result.Clear;
exit;
end;
if FindFirst(Path + '*', faAnyfile, sch) = 0 then
begin
repeat
Application.ProcessMessages;
if ((sch.Name = '.') or (sch.Name = '..')) then
Continue;
if DirectoryExists(Path + sch.Name) then
begin
Result.AddStrings(MakeFileList(Path + sch.Name, FileExt));
end
else
begin
if (UpperCase(extractfileext(Path + sch.Name)) = UpperCase(FileExt)) or (FileExt = '.*') then
Result.Add(Path + sch.Name);
end;
until FindNext(sch) <> 0;
SysUtils.FindClose(sch);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items := MakeFileList('X:\要遍历的文件夹', '.*');
end;
你这个语言我不会,但是遍历文件夹用递归是最好的了 递归调用自身 用 System.IOUtils 单元
里面有 TDirectory.GetDirectories 可以用
用法:
TDirectory.GetDirectories(path, '*.*', TSearchOption.soAllDirectories);
他会自动递归查找所有文件夹 本帖最后由 DEATHTOUCH 于 2021-9-25 14:15 编辑
DEATHTOUCH 发表于 2021-9-25 13:56
用 System.IOUtils 单元
里面有 TDirectory.GetDirectories 可以用
用法:
TDirectory里还有查找所有子文件夹内文件的函数GetFiles ...用递归函数...这一定是在钓鱼
大法王怎么可能不知道递归
话说这Delphi风格的SmartPascal代码是怎么肥思? DEATHTOUCH 发表于 2021-9-25 13:56
用 System.IOUtils 单元
里面有 TDirectory.GetDirectories 可以用
用法:
感谢 各位找到了这个https://blog.csdn.net/weixin_30747253/article/details/97430839 找到我要的答案了:https://www.cnblogs.com/del/archive/2009/10/16/1584768.html
页:
[1]