程序自动copy(Vc#&Oracle)

本文介绍了一个使用VC#编写的程序,该程序能够自动将指定目录下的文件复制到目标位置,并记录文件更新情况。文章详细描述了程序的工作流程、标志位定义以及后续改进计划。

 将T:/newprg 程序自动copy到 J: & S:  (2008/08/05)

 

用 vc# 完成第一个项目: “将T:/newprg 程序自动copy到 J: & S:” ,具体说明如下:

 可以通过程序 SDB_DAILY_CHECK(日常信息稽核)之 “MIS FILE”来查看文件的更新纪录(对应表: AD_FRM_UPD_LIST)
 通过按钮” Order by FileName”/” Order by Modi Date”,可以按文件名或文件修改时间来查找”导入时间”在5天之内的程序清单
 注:”导入时间”是指 Vc# 处理 t:/newprg 目录下文件的时间,非 Mis 文件修改时间
 通过按钮” Error File”, 可以查找 do flag 为null 的程序清单,do flag 为null说明 Mis 文件不符合 copy 到 J: 的要求
 标志位说明:
 Imp flag标志位:  T:/newprg下源程序与可执行程序的最后修改时间点差异
 0:有差异,时间点差异大于一分钟;或文件扩展名不为 fmb/fmx/mmb/mmx/pll/rdf ;或有源程序却没有可执行程序
 1:无差异的可执行程序, 如:fmx / mmx
 2:无差异的源程序,如:fmb / mmb
 3:源程序与可执行程序是同一支的, 如:rdf / pll
 Do flag标志位:  新文件与旧文件的比较标志
 null:未处理
 1:原来没有该文件,这次是第一次需 Copy 到 J: 下
 2:原来有该文件,这次是第一次更新
 3:原来有该文件,这次是第N次更新
 4:  S: 下原来有该文件,且时间点与 t:/newprg下一致,属于重复更新

 Vc# 处理的算法:
 将 T:/newprg下所有文件的清单列表写到表:AD_FRM_UPD_LIST。内容包括:文件名、扩展名、路径、文件最后修改时间、导入时间、导入用户;其中 导入时间为操作时间、导入用户为xiaohong fang、Imp flag 为0、do flag 为 null
 调用 Oracle 后台过程 AD_P_CHK_UPD 来更新 imp flag,imp flag 的更新规则同 Imp flag标志位说明
 对 imp flag 为 2 或 3 的执行如下处理:
1. 根据文件名,定位要查找的 s:/ 的子目录
a) 文件名以 xin、in 打头,子目录为 ghin
b) 文件名以 em 打头,子目录为 ems
c) 文件名以 L4 打头,子目录为 wo
d) 其余对应子目录为文件名前两位
2. 在该子目录下是否已有该文件
a) 若无,则为新文件,更新 do flag 为1
b) 若有,则为旧文件,比较该旧文件最后修改时间与 t:/newprg 的修改时间是否一致
i. 若是,则更新 do flag为4,属于重复更新
ii. 若不是,判断该目录下是否已有以该文件命名的文件夹
A. 若无,则为第一次更新,更新 do flag 为2,并创建该文件命名的文件夹
B. 若有,则为第N次更新,更新 do flag 为3,取旧文件的最后修改时间来建立文件夹
3. 从 t:/newprg 下 copy 该文件的源程序及可执行程序到 s:/ 对应子目录中
4. 从 t:/newprg 下 copy 该文件的源程序及可执行程序到 s:/Pack2008子目录
5. 从 t:/newprg 下 copy 该文件的可执行程序到 J:/
6. 删除 t:/newprg 下 copy 该文件的源程序及可执行程序
7. 更新表AD_P_CHK_UPD的 do flag 标志


 后续事项:
 VC# 程序还没编译成脱离 vc# 环境的 exe 文件
 还在考虑如何将VC# 程序做成 Server Service 的方式在 Server 上自动运行,目前还要手工执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值