谢谢!明天根据19楼思路再次优化我的代码!?看看效果!
AGETFILEVERSION()函数可以获取文件版本信息,不用麻烦!
[此贴子已经被作者于2018-7-26 08:35编辑过]
2018-07-25 22:40
[此贴子已经被作者于2018-7-26 08:35编辑过]
2018-07-26 08:34


你的代码能不能实现我要的结果?
程序代码:********************************************************************************
***功能:遍历指定盘符下的所有文件及文件夹,并获取所有相关信息。
***文件名:ScanFileTol.Prg
***调用格式:ScanFileTol('D:')
********************************************************************************
PARAMETERS cDrvmc
cDrvmc=UPPER(ALLTRIM(cDrvmc))
nOldsec=SECONDS()
?
? '[ '+cDrvmc+' ]开始扫描...',DATETIME()
DIMENSION MyarrDir(1,5),MyarrFile(1,5),MyarrErr(1)
MyarrDir(1,1)=ADDBS(cDrvmc)
MyarrDir(1,2)=''
MyarrDir(1,3)=DATE()
MyarrDir(1,4)=TIME()
MyarrDir(1,5)='....D'
STORE 1 TO nCountDir
STORE 0 TO nCountFile,nCountErr
nIarr=1
DO WHILE nIarr<=nCountDir
nNum=ADIR(Myarrtmp,MyarrDir(nIarr,1)+'*.*','RASHD')
IF nNum < 1
nCountErr = nCountErr + 1
DIMENSION MyarrErr[nCountErr]
MyarrErr[nCountErr] = "Error:" + MyarrDir(nIarr,1)
ELSE
FOR I=IIF(nIarr<=1,1,3) TO nNum
IF 'D'$Myarrtmp(I,5)
Myarrtmp(I,1)=MyarrDir(nIarr,1)+Myarrtmp(I,1)+'\'
nCountDir=nCountDir+1
DIMENSION MyarrDir(nCountDir,5)
FOR ai=1 TO 5
MyarrDir(nCountDir,ai)=Myarrtmp(i,ai)
ENDFOR
ELSE
Myarrtmp(I,1)=MyarrDir(nIarr,1)+Myarrtmp(I,1)
nCountFile=nCountFile+1
DIMENSION MyarrFile(nCountFile,5)
FOR ai=1 TO 5
MyarrFile(nCountFile,ai)=Myarrtmp(i,ai)
ENDFOR
ENDIF
ENDFOR
ENDIF
nIarr=nIarr+1
ENDDO
? '[ '+cDrvmc+' ]扫描完成...',DATETIME()
? '[ '+cDrvmc+' ]共找到[ '+TRANSFORM(nCountFile+nCountDir)+' ]个对象,其中文件[ '+TRANSFORM(nCountFile)+' ]个,文件夹[ '+TRANSFORM(nCountDir)+' ]个!用时[ '+TRANSFORM(SECONDS()-nOldsec)+' ]秒!'
CREATE CURSOR Mydbf (wjmc C(254),wjcd N(20),wjrq D,wjshj C(10),wjsx C(6))
APPEND FROM ARRAY MyarrDir
APPEND FROM ARRAY MyarrFile
APPEND FROM ARRAY MyarrErr
[此贴子已经被作者于2018-7-27 08:11编辑过]
2018-07-27 00:33