主题:如何自动读取各子文件夹下的文件夹及文件名
sctjfms
[专家分:0] 发布于 2009-11-22 21:54:00
各位大师:
如何能够实现自动读取指定盘符下指定文件夹下的各个子文件夹及文件名啊?
只有指定的文件夹是确定的,其下面的子文夹及文件都是不确定的以,甚至还有子文夹下的多级子文夹。
回复列表 (共5个回复)
沙发
sywzs [专家分:5650] 发布于 2009-11-23 07:36:00
把下面的代码保存到一个 PRG 文件中,运行一下,看看临时表中的内容是否是你要的结果。
SET DELE OFF
SET CENT ON
SET DATE ANSI
CREATE CURSOR 文件列表(文件名 C(100),大小 N(9),日期 D,时间 C(8),属性 C(8),目录 C(150))
YML=SYS(5)+SYS(2003)
CXML=GETDIR()
ML=CXML
SET DEFAULT TO (ml)
ML=IIF(RIGHT(ML,1)='\',LEFT(ML,LEN(ML)-1),ML)
WJGS=ADIR(WJMC,'*.*','') &&文件个数
IF WJGS>0
APPE FROM ARRAY WJMC
REPL ALL 目录 WITH ML FOR 目录=' '
ENDIF
DO DC WITH 1
SET DEFAULT TO (Yml)
RETURN
PROC DC
PARA SD
MLM='MLM'+ALLT(STR(SD))
MLS='MLS'+ALLT(STR(SD))
SS=ADIR(&MLM,'','D')
&MLS=SS
II='I'+ALLT(STR(SD))
IF &MLS>2
ZML0=' '
FOR &II=3 TO &MLS
ZML=ALLTRIM(&MLM.(&II,1))
ZML0=IIF(ZML0#ZML,SPAC(4),ZML0)
ML=ML+'\'+ZML
IF !'('$ZML.AND.!','$ZML
CD (ZML)
WJGS=ADIR(WJMC,'*.*','')
IF WJGS>0
APPE FROM ARRAY WJMC
REPL ALL 目录 WITH ML FOR 目录=' '
ENDIF
SD=SD+1
DO DC WITH SD
SD=SD-1
II='I'+ALLT(STR(SD))
MLM='MLM'+ALLT(STR(SD))
MLS='MLS'+ALLT(STR(SD))
ZML=''
CD ..
ML=LEFT(ML,RAT('\',ML)-1)
ELSE
IF ZML0#ZML
APPEND BLANK
REPL 目录 WITH ML
ZML0=ZML
ML=LEFT(ML,RAT('\',ML)-1)
ENDIF
ENDIF
ENDFOR
ELSE
RETU
ENDIF
RETU
板凳
sctjfms [专家分:0] 发布于 2009-11-23 11:40:00
万分感谢sywzs的支持!真诚地谢谢
3 楼
lym2009 [专家分:40] 发布于 2009-11-25 15:22:00
不知在什么地方加?可以让浏览的目录在状态栏中显示?
4 楼
ihorse [专家分:970] 发布于 2009-12-15 20:00:00
以上好代码,收藏了,感谢中!
5 楼
Gleam [专家分:3100] 发布于 2009-12-16 10:55:00
不用这么麻烦吧?!
参考一下我以前的帖子《复制文件的小代码》
[url]http://bbs.pfan.cn/post-309160.html[/url]
我来回复