在 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
過程會遞歸遍歷指定文件夾下的所有文件和子文件夾,并輸出它們的路徑。你可以根據需要修改代碼以執行其他操作。