网页素材: 导航菜单选项卡滑动门焦点图图片切换下拉菜单弹出层Tabs链接提示

您的当前位置: 源码爱好者 » 网页制作教程(编程教程) » Delphi技术教程

Delphi基于递归法实现磁盘目录遍历功能

  • 标签:递归法 目录遍历  更新时间:2014-07-20
  • 递归法遍历磁盘目录,这是个Delphi代码,可快速进行目录遍历:

    unit Main;
    interface
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ExtCtrls;
    type
      TForm1 = class(TForm)
        SearchBtn: TButton;
        DirectoryEdt: TMemo;
        PathEdt: TEdit;
        Label1: TLabel;
        Image1: TImage;
        procedure SearchBtnClick(Sender: TObject);
        procedure MakeTree;
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;
    implementation
    {$R *.DFM}
    procedure TForm1.MakeTree;
    var
      Sr: TSearchRec;
      Err: Integer;
      FilePath: string;
    begin
      Err := FindFirst('*.*',$37,Sr);   //$37为除Volumn ID Files外的所有文件
      //  如果找到文件
      while (Err = 0) do
      begin
        if Sr.Name[1] <> '.' then
        begin
          //找到文件
          if (Sr.Attr and faDirectory) = 0 then
          begin
          end;
          //找到子目录
          if (Sr.Attr and faDirectory) = 16 then
          begin
            FilePath := ExpandFileName(Sr.Name);
            DirectoryEdt.Lines.Add(FilePath);
            ChDir(Sr.Name);
            MakeTree;
            ChDir('..');
          end;
        end;
        //结束递归
        Err := FindNext(Sr);
      end;
    end;
    procedure TForm1.SearchBtnClick(Sender: TObject);
    begin
      DirectoryEdt.Lines.Clear;
      ChDir(PathEdt.Text);
      MakeTree;
    end;
    end.

     

  • 已读: 次 收藏本文关闭本文打印本文复制链接
处理 SSI 文件时出错