delphi怎么遍歷文件夾

小億
258
2023-12-12 23:34:07

在 Delphi 中,可以使用 FindFirstFindNext 函數(shù)來(lái)遍歷文件夾。下面是一個(gè)示例代碼:

procedure TraverseFolder(const AFolder: string);
var
  SR: TSearchRec;
  IsFound: Boolean;
begin
  // 搜索文件夾中的第一個(gè)文件/文件夾
  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
        // 當(dāng)前找到的是文件夾
        Writeln('文件夾:', AFolder + '\' + SR.Name);
        // 遞歸遍歷子文件夾
        TraverseFolder(AFolder + '\' + SR.Name);
      end
      else
      begin
        // 當(dāng)前找到的是文件
        Writeln('文件:', AFolder + '\' + SR.Name);
      end;
    end;
    // 繼續(xù)搜索下一個(gè)文件/文件夾
    IsFound := FindNext(SR) = 0;
  end;
  // 關(guān)閉搜索
  FindClose(SR);
end;

// 使用示例
procedure TForm1.Button1Click(Sender: TObject);
var
  FolderPath: string;
begin
  FolderPath := 'C:\YourFolderPath';
  TraverseFolder(FolderPath);
end;

在上面的示例代碼中,TraverseFolder 過(guò)程會(huì)遞歸遍歷指定文件夾下的所有文件和子文件夾,并輸出它們的路徑。你可以根據(jù)需要修改代碼以執(zhí)行其他操作。

0