findfilefrm.pas

来自「关于利用DELPHI来进行企业级方案解决的著作的附书源码」· PAS 代码 · 共 72 行

PAS
72
字号
unit FindFileFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ShellCtrls, ExtCtrls;

type
  TMainForm = class(TForm)
    ShellTreeView1: TShellTreeView;
    ListBox1: TListBox;
    CheckBox1: TCheckBox;
    Button1: TButton;
    LabeledEdit1: TLabeledEdit;
    procedure Button1Click(Sender: TObject);
  private
    FFileName:String;
    procedure FindFiles(path:String);
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

procedure TMainForm.Button1Click(Sender: TObject);
begin
 MainForm.Cursor:=crHourGlass;
 ListBox1.Items.Clear;
 FFileName:=LabeledEdit1.Text;
 try
  FindFiles(ShellTreeView1.Path+'\');
 finally
  MainForm.Cursor:=crDefault;
 end;
end;

procedure TMainForm.FindFiles(path:String);
var
 FSearchRec,DSearchRec:TSearchRec;
 FindResult:shortint;
begin
 FindResult:=FindFirst(path+FFileName,faAnyFile+faHidden+faSysFile+faReadonly,FSearchRec);
 try
  while FindResult=0 do
  begin
   ListBox1.Items.Add(path+FSearchRec.Name);
   FindResult:=FindNext(FSearchRec);
  end;
  if CheckBox1.Checked then
  begin
   FindResult:=FindFirst(path+'*.*',faDirectory,DSearchRec);
   while FindResult=0 do
   begin
    if ((DSearchRec.Attr and faDirectory)=faDirectory)
      and (DSearchRec.Name<>'.') and (DSearchRec.Name<>'..') then
      FindFiles(path+DSearchRec.Name+'\');
      FindResult:=FindNext(DSearchRec);
   end;
  end;
 finally
   FindClose(FSearchRec);
 end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?