如何遍历一个文件夹得到所有文件?

10 | 问答知识库用户 |浏览266次
收藏|2014/05/17 21:59
如题:如何遍历一个文件夹得到所有文件?并且可以根据后缀名来设置遍历出的文件类型,即指找某一种类型的文件?

满意回答

2014/06/08 09:46

参考一下下面的代码:

function GetFileList(Path, FileExt: string): string;

var

  sch: TSearchrec;

  ATempFile: string;

  List: TStringList;

begin

  List := TStringList.Create;

  try

    if rightStr(trim(Path), 1) <> '\' then

      Path := trim(Path) + '\'

    else

      Path := trim(Path);

{$WARN SYMBOL_DEPRECATED OFF}

    if not DirectoryExists(Path) then

{$WARN SYMBOL_DEPRECATED ON}

    begin

      List.Clear;

      exit;

    end;

    if FindFirst(Path + '*', faAnyfile, sch) = 0 then

    begin

      repeat

        Application.ProcessMessages;

        if ((sch.Name = '.') or (sch.Name = '..')) then

          Continue;

{$WARN SYMBOL_DEPRECATED OFF}

        if DirectoryExists(Path + sch.Name) then

{$WARN SYMBOL_DEPRECATED ON}

        begin

          ATempFile := GetFileList(Path + sch.Name, FileExt);

          if trim(ATempFile) <> '' then

            List.Add(ATempFile);

        end

        else

        begin

          if (UpperCase(extractfileext(Path + sch.Name)) = UpperCase(FileExt))

            or (FileExt = '.*') then

            List.Add(Path + sch.Name);

        end;

      until FindNext(sch) <> 0;

      SysUtils.FindClose(sch);

    end;

  finally

    result := trim(List.Text);

    List.Free;

  end;

end;


oloveuxyz

其他回答(1)
  • 查找所有文件:
    Memo1.Text:=  MakeFileList(Path, '.*');
    查找txt类型文件:
    Memo1.Text:=  MakeFileList(Path, '.txt');
    回答于 2014/05/17 21:59
0人关注该问题
待解决问题



+1
 加载中...