错误:
function GetFileCount(srcPath, srcFileName: string): Integer;
定义在FormCreat事件 中,
Button事件是不能调用的。
修正:
你应该将它拉出来,放在
private
或
public
{ Public declarati
均可:
单元代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetFileCount(srcPath, srcFileName: string): Integer;
end;var
Form1: TForm1;implementation{$R *.dfm}function TForm1.GetFileCount(srcPath, srcFileName: string): Integer;
var FileRec: TSearchrec;
currPath: string;
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;procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=GetFileCount('c:', 'cmd.exe');
showmessage('有'+inttostr(n)+'个同名文件');
end;end.
function GetFileCount(srcPath, srcFileName: string): Integer;
定义在FormCreat事件 中,
Button事件是不能调用的。
修正:
你应该将它拉出来,放在
private
或
public
{ Public declarati
均可:
单元代码:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GetFileCount(srcPath, srcFileName: string): Integer;
end;var
Form1: TForm1;implementation{$R *.dfm}function TForm1.GetFileCount(srcPath, srcFileName: string): Integer;
var FileRec: TSearchrec;
currPath: string;
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;procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=GetFileCount('c:', 'cmd.exe');
showmessage('有'+inttostr(n)+'个同名文件');
end;end.
U盘的不同的目录,拷贝若干个1.txt文件。 就可以验证了。比如U盘是I:
procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=GetFileCount('I', '1.txt');
showmessage('有'+inttostr(n)+'个同名文件');
end;