DELPHI 这几句是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/05/08 11:06:51
var
sr:TSearchRec;//文件目录搜索记录类用来储存返回的文件的一些数据与FindFist,FindNext有关
Err:Integer;
begin
Err:=FindFirst('*.*',$37,sr);//(1) $37指什么?
while Err=0 do
begin
if sr.Name[1]<>'.' then// (2) sr.Name[1]<>'.'中[1]<>'.'指什么意思
begin
if (sr.Attr and faDirectory)=0 then //(3) (sr.Attr and faDirectory)=0这是目录还是文件?
begin
treeview1.Items.AddChildFirst(bnode,sr.Name);
end;
if (sr.Attr and fadirectory)=faDirectory then
begin
filenode:=treeview1.Items.AddChildFirst(bnode,sr.Name);//(4) AddChildFirst属性是什么意思
chdir(sr.Name);//(5) 这句跟下面chdir('..')那句都解释一下
application.ProcessMessages;
myFind(filenode);
chdir('..');
end;
end;
err:=findNext(sr);
end;

(1)$37是查找文件的属性,基本上是所有的文件都有找了,属性定义见帮助文件
Constant Value Description
----------------------------------------------
faReadOnly $00000001 Read-only files
faHidden $00000002 Hidden files
faSysFile $00000004 System files
faVolumeID $00000008 Volume ID files
faDirectory $00000010 Directory files
faArchive $00000020 Archive files
faAnyFile $0000003F Any file

(2)文件名第一个字符不是"." 在一个文件夹中有一个名称为"."的特殊文件代表本文件夹(在命令符模式下执行dir命令可以看到),相应的,还有一个".."代表上级目录(这个与问题5有关)

(3)文件

(4)在treeview1控件上加一个子结点

(5)改变当前目录,进入子目录中,执行myFind函数(估计这个自定义函数的功能是递归查找子目录中的文件了),执行完了调用chdir("..")返回上级目录.

整体看上去,这个函数就是读取一个文件夹,把下级的文件和文件夹挂到一个树控件上.

第一个是不是$3F啊,如果是$3F的话代表faAnyFile,第二个是文件名的第一个字符是不是为'.',第三个是文件,第四个AddChildFirst就是加一个子节点,第五个chdir为改变工作目录