回 帖 发 新 帖 刷新版面

主题:如何自动读取各子文件夹下的文件夹及文件名

各位大师:
如何能够实现自动读取指定盘符下指定文件夹下的各个子文件夹及文件名啊?
只有指定的文件夹是确定的,其下面的子文夹及文件都是不确定的以,甚至还有子文夹下的多级子文夹。

回复列表 (共5个回复)

沙发

把下面的代码保存到一个 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

板凳

万分感谢sywzs的支持!真诚地谢谢

3 楼


不知在什么地方加?可以让浏览的目录在状态栏中显示?

4 楼

以上好代码,收藏了,感谢中!

5 楼

不用这么麻烦吧?!
参考一下我以前的帖子《复制文件的小代码》
[url]http://bbs.pfan.cn/post-309160.html[/url]

我来回复

您尚未登录,请登录后再回复。点此登录或注册