function FindFirst( Path: string; //路径字符串 Attr: Integer; //文件属性 var F: TSearchRec //一个结构(或叫记录) ): Integer; //返回值 参数 Path://路径字符串,如F:\ABC.exe Attr:faReadOnly $01 //只读文件 faHidden $02 //隐藏文件 faSysFile $04 //系统文件 faVolumeID $08 //卷标文件 faDirectory $10 //目录文件 faArchive $20 //存档文件 faAnyFile $3F //任何文件 faSymLink $40 //快捷方式 var F: TSearchRec //一个结构(或叫记录) TSearchRec = record Time: Integer; //文件创建时间 Size: Integer; //文件大小 Attr: Integer; //文件属性 Name: TFileName; // ExcludeAttr: Integer; //排除的文件属性 返回值 0 //成功 -1 //失败
FindFirst函数用来查找文件,成功则返回0,并把文件的相关信息写入TSearchRec结构,否则返回-1
那么,我来编个程序来看看,嘿嘿,没有图片就是太单调^_^。。。
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); //查找 var SearchRec: TSearchRec; begin if FindFirst(ExpandFileName(Edit1.Text), faAnyFile, SearchRec) = 0 then ShowMessage('查找成功') else ShowMessage('查找失败,当前目录下没有这个文件'); end; procedure TForm1.FormCreate(Sender: TObject); //应用程序初始化 begin Form1.Caption:='查找文件'; Button1.Caption:='查找'; Edit1.Text:='请输入文件名'; end; end.
那么我再稍微改一改,让它判断查找出来的这个文件的大小,修改如下:
procedure TForm1.Button1Click(Sender: TObject); //查找 var SearchRec: TSearchRec; a:string; begin if FindFirst(ExpandFileName(Edit1.Text), faAnyFile, SearchRec) = 0 then begin ShowMessage('查找成功'); a:=IntToStr(SearchRec.Size div 1024); ShowMessage('文件大小为' + a + 'kb'); end else ShowMessage('查找失败,当前目录下没有这个文件'); end;