标题:关联文件如何能归集在一起,并删除无关的文件,大家有无好的方法
只看楼主
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:273
专家分:594
注 册:2012-9-21
结帖率:96.67%
已结贴  问题点数:10 回复次数:12 
关联文件如何能归集在一起,并删除无关的文件,大家有无好的方法
我的一个VFP开发目录,刚开始由于没有养成好的习惯,经过近20年时间,积攒了大量无关文件,比如编辑一个重要表单时,会将这个表单另存为副本或其它文件名,或者这个表单过一段时间没用了,一改名,这个表单就留在那里不动了,还有大量的TEMP文件(当然,temp bak 文件都可以一键删除),还有临时为了达到某种功能临时做的FORM文档,txt,JPG,prg,dbf等等,我们连编时,系统会自动查找有关文件,那么问题是,我这个目录下有近3千多个文档,显然非常臃肿杂乱。主文件是 main.prg ,如何才能将所有与main.prg(像连编一样)有关联的文件提取放在另一个目录。大家有什么好的经验分享?把无关的文件删了,如果是逐一打开查找,显然是不可能,将SCX文件导入自由表分析好像也不容易,耗时。
搜索更多相关主题的帖子: 删除 表单 目录 文件 关联 
2022-04-30 17:54
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
根据文件的类型分类保存

坚守VFP最后的阵地
2022-04-30 18:33
ljlhpop
Rank: 2
等 级:论坛游民
帖 子:151
专家分:49
注 册:2015-10-11
得分:0 
骨灰级高手..20年了........居然还是一个目录.
2022-04-30 18:47
sych
Rank: 3Rank: 3
等 级:论坛游侠
威 望:6
帖 子:179
专家分:183
注 册:2019-10-11
得分:2 
编译成exe,然后再反编译
2022-04-30 19:00
fyyylyl
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:16
帖 子:287
专家分:676
注 册:2006-5-22
得分:0 
同意4楼意见。另外还可以先将除项目文件及maⅰn.prg外的其他文件移到另外一个文件夹然后连编,根椐提示找不到的文件逐个移回;或全部忽略后查看项目.err文件。

2022-04-30 20:20
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:2 
按修改日期排序,时间久远的肯定没用(仅限表单、程序等自己写的),这样可以找到不少没用的
建议删除前先做备份,以免误伤
2022-04-30 20:20
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:273
专家分:594
注 册:2012-9-21
得分:0 
久没更新的文件曰期是不会变的,几年前的peg,frx报表至今在用,曰期这块行不通,一删就出错
2022-04-30 22:23
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:2 
比较简单的是编译反编译。也可以用以下方法。
进入VFP用
SELECT DISTINCT  name wjm FROM  项目文件名.pjx WHERE !EMPTY(id) INTO CURSOR mpmp
以你的能力应该能生成相应的备注文件列表。copy file 复制它们与项目文件到新文件夹下。打开复制后的项目文件并连编,在错误中会提示缺少的文件(可能有些文件未加入项目文件,在原文件夹下可正常运行)。
如果不想编程,可以将MPMP中的内容复制到EXCEL文件中,用类似="copy "&A2&" bak"生成一列DOS命令,粘贴到一个BAT文件中,运行复制文件,连编项目文件,再复制错误中提示的文件。

dBase有人接盘了。
2022-05-01 07:50
cssnet
Rank: 4
等 级:业余侠客
威 望:4
帖 子:317
专家分:203
注 册:2013-10-4
得分:2 
楼主啊,听说,VFP的项目文件是一个带备注文件的dbf。
正如楼上所说,你写一段代码,scan...endscan一下这个dbf,项目包含的所有文件就拷贝出来啦:

* 先手动新建一个空白新目录
MD D:\NewDir
lcNewDir = "D:\NewDir\"
use 你的项目.pjx
pack
scan
    * 印象中有个filename之类的字段,请自己确认一下
    * lcFilename = filename (?)
    * lcNewFile = lcNewDir + juststem(lcFilename)  &&具体函数名记不太清啦,请搜帮助文件确认一下。
    * copy file (lcFilename) to (lcNewFile)
    * 若带备注文件的sct、vct之类,也一并复制过去
endscan

莫说3千个文件,3万个也是小case,亲。


[此贴子已经被作者于2022-5-1 09:06编辑过]

2022-05-01 08:35
zhken
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:11
帖 子:273
专家分:594
注 册:2012-9-21
得分:0 
五一劳动节快乐。感谢大家。
其实对项目 SCAN 达不到目的,是因为有时侯编辑的FORM 文件并没有添加到项目上,有时侯添加到项目上的文件过一段时间就不用了,就会一直留在项目上,成了重复或没用的文件,对没用的文件SCAN结果也没用。估计一直盯着项目,没用的就删,有用的就添加,也许没这样的习惯。
反编译是一个方法。
还有一个想法就是如何对一个 Main.prg 的主文件,如何顺藤摸瓜. 先找出相关的 DBF,FORM,PRG 等需要的文件,再接着分析每个文件包含需要的文件,依次类推... ....这样比较精准,但是文件量大时,是如何艰难。有没有类似 搜目录文件的方法,得出一个包含文件列表的TXT.
2022-05-01 09:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-508983-1-1.html




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

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