unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);function GetFileCount(srcPath, srcFileName: string): Integer;
var
  FileRec: TSearchrec;
  currPath: string;
  srcPath: string;
  srcFileName: string;
  Result: integer;
begin
  if srcPath[Length(srcPath)] <> '\' then srcPath := srcPath + '\';
  currPath := srcPath + '*.*';
  Result := 0;
  if FindFirst(currPath, faAnyFile, FileRec) = 0 then
    repeat
      if ((FileRec.Attr and faDirectory) <> 0) and
        (FileRec.Name <> '.') and
        (FileRec.Name <> '..') then
      begin
        Result := Result + GetFileCount(srcPath + FileRec.Name, srcFileName);
      end else
      if AnsiCompareText(srcFileName, FileRec.Name) = 0 then
        Result := Result + 1;
    until FindNext(FileRec) <> 0;
end;end.

解决方案 »

  1.   

    大神  可以在自己电脑上运行下,看看那里有错误,我自己运行到Var变量srcPath: string;那里就有错误了
      

  2.   

    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
     
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.FormCreate(Sender: TObject);  function GetFileCount(srcPath, srcFileName: string): Integer;
      var
        FileRec: TSearchrec;
        currPath: string;
    //    srcPath: string;       这三个不要
    //    srcFileName: string;
    //    Result: integer;
      begin
        if srcPath[Length(srcPath)] <> '\' then srcPath := srcPath + '\';
        currPath := srcPath + '*.*';
        Result := 0;
        if FindFirst(currPath, faAnyFile, FileRec) = 0 then
          repeat
            if ((FileRec.Attr and faDirectory) <> 0) and
              (FileRec.Name <> '.') and
              (FileRec.Name <> '..') then
            begin
              Result := Result + GetFileCount(srcPath + FileRec.Name, srcFileName);
            end else
            if AnsiCompareText(srcFileName, FileRec.Name) = 0 then
              Result := Result + 1;
          until FindNext(FileRec) <> 0;
      end;
    begin       //这里加上begin end 即可end;
    end.
      

  3.   

    //该处代码用于求出指定路径下具有相同文件名的文件个数
    procedure TForm1.Button1Click(Sender: TObject);
    var
      i: Integer;
      pFR: PFileRecord;
      iCount: Integer;
    begin
      if slFileResult = nil then
        slFileResult := TStringList.Create;
      Caption := IntToStr(GetFileCount(Edit1.Text));
      for i := 0 to slFileResult.Count - 1 do
      begin
        pFR := PFileRecord(slFileResult.Objects[i]);
        if pFR.iCount > 1 then
        begin
          iCount := iCount + 1;
          Memo1.Lines.Add(Format('%d----%s', [pFR.iCount, pFR.sFilename]));
        end;
      end;
      Caption := IntToStr(iCount);
    end;  这个程序窗体上应该添加点什么