VF如何获取文件夹名
想通过VF制作程序获取某一目录下的文件夹列表,怎么做?
用GETDIR()可以得到文件夹名:
?GETDIR()
T1=SECONDS() TOPDIR = INPUTBOX([要查找的文件夹:],[查找文件],SYS(5)+SYS(2003)) && 父文件夹 MDLEVE =1 && 父文件夹为第一层 CREATE CURSOR DIRSTRU (目录层次 N(8),目录属性 C(5),文件名称 C(250) ) INSERT INTO DIRSTRU VALUES (MDLEVE,[D],TOPDIR) && 将父文件夹添加到表中 DO WHILE .T. SELE * FROM DIRSTRU INTO CURSOR TMDIR WHERE 目录层次 = MDLEVE &&读取第MDLEVE层文件夹 IF EOF() EXIT && 若无下一层文件夹结束当前循环 ENDIF SCAN && 处理当前文件夹 NCOUNT =ADIR(DIRARR, ALLTRIM(文件名称)+[\*.*],[DHS]) && 当前文件夹下的子文件夹数量 CDIR = ALLTRIM(文件名称)+[\] && 当前路径(文件夹) NFILE =ADIR(FILEARR, ALLTRIM(文件名称)+[\*.*],[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 DIRSTRU MESSAGEBOX([查询时间:]+TRANSFORM((SECONDS()-T1)*1000)+[毫秒]) BROWSE