在 Delphi 中,可以使用 FindFirst
和 FindNext
函数来遍历文件夹。下面是一个示例代码:
procedure TraverseFolder(const AFolder: string);
var
SR: TSearchRec;
IsFound: Boolean;
begin
// 搜索文件夹中的第一个文件/文件夹
IsFound := FindFirst(AFolder + '\*', faAnyFile, SR) = 0;
while IsFound do
begin
// 忽略 "." 和 ".." 文件夹
if (SR.Name <> '.') and (SR.Name <> '..') then
begin
if (SR.Attr and faDirectory) = faDirectory then
begin
// 当前找到的是文件夹
Writeln('文件夹:', AFolder + '\' + SR.Name);
// 递归遍历子文件夹
TraverseFolder(AFolder + '\' + SR.Name);
end
else
begin
// 当前找到的是文件
Writeln('文件:', AFolder + '\' + SR.Name);
end;
end;
// 继续搜索下一个文件/文件夹
IsFound := FindNext(SR) = 0;
end;
// 关闭搜索
FindClose(SR);
end;
// 使用示例
procedure TForm1.Button1Click(Sender: TObject);
var
FolderPath: string;
begin
FolderPath := 'C:\YourFolderPath';
TraverseFolder(FolderPath);
end;
在上面的示例代码中,TraverseFolder
过程会递归遍历指定文件夹下的所有文件和子文件夹,并输出它们的路径。你可以根据需要修改代码以执行其他操作。