回去研究了一下不知道 adir 怎么统计有子文件夹下的 文件名 在别的地方找到了一个 好像是stda大佬的
解决了这个问题 关键是 能把文件后缀名去掉吗 如果能去掉就更好了
TOPDIR = "
"&& 父文件夹
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)+"\*.xls","DHS") && 当前文件夹下的子文件夹数量
CDIR = ALLTRIM(DNAME)+"\" && 当前路径(文件夹)
NFILE =ADIR(FILEARR, ALLTRIM(DNAME)+"\*.xls","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),JUSTFNAME(CDIR + FILEARR(J,1)))
ENDFOR
ENDSCAN
MDLEVE = MDLEVE +1
ENDDO
SELE DIRSTRU
?RECCOUNT()
BROWSE