| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6013 人关注过本帖, 1 人收藏
标题:遍历指定盘符下的所有文件及文件夹并获取所有信息,欢迎交流提速!
取消只看楼主 加入收藏
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
谢谢!明天根据19楼思路再次优化我的代码!?看看效果!
2018-07-25 22:40
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
谢谢吹版!这么早!

AGETFILEVERSION()函数可以获取文件版本信息,不用麻烦!

[此贴子已经被作者于2018-7-26 08:35编辑过]

2018-07-26 08:34
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:0 
楼上的兄弟,你提供结果的格式不是我想要的,但是速度确实快了。你的代码能不能实现我要的结果?

修改后,好像也不快!但是确实循环的次数少了,但是数组多了,占用内存的数量增加。

程序代码:
********************************************************************************
***功能:遍历指定盘符下的所有文件及文件夹,并获取所有相关信息。
***文件名: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
快速回复:遍历指定盘符下的所有文件及文件夹并获取所有信息,欢迎交流提速!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019011 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved