| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 298 人关注过本帖, 1 人收藏
标题:求助,多个文件夹下的所有文件加到另外个文件中
只看楼主 加入收藏
siruding
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2014-5-15
结帖率:60%
收藏(1)
已结贴  问题点数:20 回复次数:7 
求助,多个文件夹下的所有文件加到另外个文件中
每个文件的格式都一样。

D:\JIN\500131\1.DBF
D:\JIN\500131\2.DBF
D:\JIN\500131\3.DBF

D:\JIN\500132\1.DBF
D:\JIN\500132\2.DBF
D:\JIN\500132\3.DBF

JIN目录下的500131和500132这两个目录每天都不一样,可能会是500134或515635目录,或是其他的什么代码,但1,2,3.DEF文件名每天都不变的。

怎么实现每天运行以后JIN目录下的所有1,2,3.DBF 的内容加到D:\JIN\JJTBK.DBF里面。

向大神求助。

搜索更多相关主题的帖子: 多个 文件 目录 文件夹 DBF 
2024-08-06 15:45
easyppt
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:309
专家分:711
注 册:2021-11-24
收藏
得分:0 
思路:
利用 adir() 获取目录及文件列表,然后再循环处理每个dbf,把数据附加到D:\JIN\JJTBK.DBF里面
2024-08-06 16:20
siruding
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2014-5-15
收藏
得分:0 
回复 2楼 easyppt
ADIR()这个函数不太会用,能具体点吗,谢谢。
2024-08-06 16:26
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27241
注 册:2012-2-5
收藏
得分:0 
*************************************************************
* 4、如何读取文件夹及文件夹下的文件(仅供参考)
*************************************************************
TOPDIR = INPUTBOX([要查找的文件夹:],[查找文件],SYS(5)+SYS(2003)) && 父文件夹
MDLEVE =1                                                         && 父文件夹为第一层
CREATE CURSOR DIRSTRU (DLEVE N(8),DATTRIBUTE C(5),DNAME C(250) )
INSERT INTO DIRSTRU VALUES (MDLEVE,[D],TOPDIR)                    && 将父文件夹添加到表中
DO WHILE .T.
   SELE * FROM DIRSTRU INTO CURSOR TMDIR WHERE DLEVE = MDLEVE     &&读取第DLEVE层文件夹
   IF EOF()
      EXIT                                                        && 若无下一层文件夹结束当前循环
   ENDIF
   SCAN                                                           && 处理当前文件夹
      NCOUNT =ADIR(DIRARR, ALLTRIM(DNAME)+[\*.*],[DHS])           && 当前文件夹下的子文件夹数量
      CDIR = ALLTRIM(DNAME)+[\]                                   && 当前路径(文件夹)
      NFILE =ADIR(FILEARR, ALLTRIM(DNAME)+[\*.dbf],[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 dname FROM DIRSTRU WHERE ".DBF"$dname ORDER BY dname

坚守VFP最后的阵地
2024-08-06 16:44
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:10 
大概这样,随便写的没测试

cRoot = 'd:\jin'
set default to (cRoot)

select 0
use JJTBK

for ii = 1 to adir(aDirs, '', 'D')
  cDir = aDirs[ii,1]
  if inlist(cDir, '.', '..')
    loop
  endif
  cPath = addbs(addbs(cRoot) + cDir)
  append from (cPath + '1.dbf')
  append from (cPath + '2.dbf')
  append from (cPath + '3.dbf')
endfor



[此贴子已经被作者于2024-8-6 16:47编辑过]


这家伙很懒,啥也没留下
2024-08-06 16:45
siruding
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2014-5-15
收藏
得分:0 
回复 5楼 csyx
我试了一试,能跑通。
还有请教一下 cDir = aDirs[ii,1]
             inlist(cDir, '.', '..')
这两句是啥意思,谢谢。

[此贴子已经被作者于2024-8-6 17:52编辑过]

2024-08-06 17:37
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:709
专家分:2848
注 册:2018-3-13
收藏
得分:10 
cDir = aDirs[ii,1]     && 取子目录名称,另外的 2/3/4 列分别是 大小/最后修改的日期/时间,vfp 帮助里都有写
inlist(cDir, '.', '..')   && .  代表当前目录, 你电脑上就是 d:\jin
              && .. 代表上级目录,你电脑上就是 d:\
              && 你的需求是找出 jin 下的子目录,自然要排除它俩
              && 这俩项目是固定的,即使空目录也有这两项,到 cmd 窗口去看看就知道了

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2024-8-6 21:04编辑过]


这家伙很懒,啥也没留下
2024-08-06 20:26
siruding
Rank: 1
等 级:新手上路
帖 子:30
专家分:4
注 册:2014-5-15
收藏
得分:0 
回复 7楼 csyx
好的太感谢了,顺便问一下,有没有什么vfp的教材可以推荐一下,突然感觉自己会的东西只是冰山一角。

为什么我的帮助是英文的。

[此贴子已经被作者于2024-8-7 13:05编辑过]

2024-08-07 13:02
快速回复:求助,多个文件夹下的所有文件加到另外个文件中
数据加载中...
 
   



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

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