*************************************************************
* 4、如何读取文件夹及文件夹下的文件(仅供参考)
*************************************************************
TOPDIR = INPUTBOX([要查找的文件夹:],[查找文件],SYS(5)+SYS(2003)) && 父文件夹
MDLEVE =1
&& 父文件夹为第一层
CREATE CURSOR DIRSTRU (DLEVE N(8),DATTRIBUTE C(5),DNAME C(250) )
INSERT INTO DIRSTRU VALUES (MDLEVE,[D],TOPDIR)
&& 将父文件夹添加到表中
DO WHILE .T.
SELE * FROM DIRSTRU INTO CURSOR TMDIR WHERE DLEVE = MDLEVE
&&读取第DLEVE层文件夹
IF EOF()
EXIT
&& 若无下一层文件夹结束当前循环
ENDIF
SCAN
&& 处理当前文件夹
NCOUNT =ADIR(DIRARR, ALLTRIM(DNAME)+[\*.*],[DHS])
&& 当前文件夹下的子文件夹数量
CDIR = ALLTRIM(DNAME)+[\]
&& 当前路径(文件夹)
NFILE =ADIR(FILEARR, ALLTRIM(DNAME)+[\*.dbf],[AHRS])
&& 当前文件夹下的文件夹数量
FOR I = 1 TO NCOUNT
&&读取当前文件夹下的子文件夹
IF [D]$ DIRARR(I,5) AND NOT INLIST(DIRARR(I,1),[.],[..])
INSERT INTO DIRSTRU VALUES (MDLEVE+1,DIRARR(I,5),CDIR + DIRARR(I,1))
ENDIF
ENDFOR
FOR J=1 TO NFILE
&& 读取当前文件夹下的文件
INSERT INTO DIRSTRU VALUES (MDLEVE+1,FILEARR(J,5),CDIR + FILEARR(J,1))
ENDFOR
ENDSCAN
MDLEVE = MDLEVE +1
ENDDO
SELECT dname FROM DIRSTRU WHERE ".DBF"$dname ORDER BY dname