发信人: hunter__fox(雁回西楼)
整理人: hunter__fox(2002-03-16 20:55:57), 站内信件
|
【 在 bu_bu 的大作中提到:】
:如题.
:......
以下不知是不是你想要的?
Create Cursor DirInfo(ID I Not Null Unique,;
Parent I Null,;
Name M Not Null,;
Size I Null,;
DateTime T Null,;
Attrib C(5) Null)
Insert Into DirInfo Values(1,.Null.,"C:",.Null.,.Null.,.Null.)
SeleFile("DirInfo",1)
&& -------------------------------------------------------------------
&& 此函数运行条件为:
&& cAlias 所指向的表格式同 DirInfo 表一致
&& cAlias 所指向的表可写
&& nRec 所指记录必须是一个目录
&& nRec 通过 Parent==>ID 方式可回溯至根目录
&& 日期、时间的格式可通过 DTOC()、CTOT()、TTOC() 函数
Function SeleFile(cAlias,nRec)
Go nRec In (cAlias)
If At("D",(cAlias + ".Attrib")) > 0 && 若是一个目录
Local iParent
iParent = Evaluate(cAlias + ".ID")
&& 取得新目录路径
Local cNewDir
cNewDir = Alltrim(Evaluate(cAlias + ".Name"))
Do While Not IsNull(Evaluate(cAlias + ".Parent")) && 根目录没有上层目录
IndexSeek(Evaluate(cAlias + ".Parent"),.T.,cAlias,"ID")
cNewDir = Alltrim(Evaluate(cAlias + ".Name")) + "\" + cNewDir
EndDo
Local aDirInfo[1],n
aDir(aDirInfo,cNewDir + "\*.*","ASDHR")
For n = 1 To aLen(aDirInfo,1) && 逐条处理
If Not (aDirInfo[n,1] == "." Or aDirInfo[n,1] == "..") && 父目录和本目录除外
&& 加入表中
Insert Into (cAlias) ;
Values (RecCount(cAlias)+1,;
iParent,;
Alltrim(aDirInfo[n,1]),;
aDirInfo[n,2],;
CToT(DToC(aDirInfo[n,3])+" "+aDirInfo[1,4]),;
aDirInfo[n,5])
&& 若是目录则递归调用
If At("D",aDirInfo[n,5]) > 0
SeleFile(cAlias,RecCount(cAlias))
EndIf
EndIf
EndFor
EndIf
EndFunc
---- 在代码天地里
我要做一个
猎狐者 |
|