【在线等候,如何在VFP中建立目录】

lihuaming 2004-10-15 09:51:21
在我表单中的数据备份功能,我想将每天的数据备份到以当天日期为目录名的目录中。如:今天是2004-10-15,那么将数据备份到目录'20041015'中。

以前我一直用一个单独的程序文件prolib.prg,代码如下:
----------------------------------------------------
FUNCTION run
PARAMETER doscmd
DECLARE INTEGER WinExec IN win32api AS run ;
STRING command, INTEGER param
cmdstart = fullpath("FOXRUN.PIF")+" /C"
fullcmd = cmdstart + doscmd
retval = run(fullcmd, 0)
RETURN retval
----------------------------------------------------
然后在表单中建立一‘建立备份目录’的命令按钮,click 事件的代码如下
local source1,cmds,path1
close all
path1=alltrim(str(year(date())))+alltrim(str(month(date())))+alltrim(str(day(date())))
source1=sys(5)+sys(2003)+'\back\'+path1
if .not. directory('&source1')
cmds='MD '+source1
set proce to prolib
do run with '&cmds'
endif
--------------------------------------------------------------------
最后再建立一个‘备份’的命令按钮,click 事件的代码如下
local source,obj,source1,cmds
close all
path1=alltrim(str(year(date())))+alltrim(str(month(date())))+alltrim(str(day(date())))
source1=sys(5)+sys(2003)+'\back\'+path1
if .not. directory('&source1')
messagebox('备份文件夹不存在,请先创建它。',32,'错误')
else
source=sys(5)+sys(2003)+'\datebase\*.*'
obj=source1+'\*.*'
SET SAFETY OFF
copy file '&source' to '&obj'
SET SAFETY On
endif
------------------------------------------------------------------
没办法,因为将‘建立备份目录’的命令按钮click 事件的代码与‘备份’命令按钮的click 事件的代码合到一起,就说目录不存在(可能是系统的刷新太慢)

请问各位高手:我不想用'MD'并将建立目录与复制文件合而为一,如何写?
...全文
167 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dfwxj 2004-10-15
  • 打赏
  • 举报
回复
mdir=dtos(date())
*检测目录是否存在,不存在则建立
dirflag=.f. &&检测标志,若目录不存在,则出错,将dirflag置.t.
on erro dirflag=.t.
set defa to &mdir
if dirflag &&若目录不存在,则建立该目录,否则返回工作目录
md &mdir
else
set defa to ..
endi
on erro
*备份数据
十豆三 2004-10-15
  • 打赏
  • 举报
回复
source1=sys(5)+sys(2003)+'\back\'+DTOS(DATE())
IF NOT DIRECTORY('&source1')
MD &source1
ENDIF
lihuaming 2004-10-15
  • 打赏
  • 举报
回复
对不起,可以。谢谢!(我把事件搞复杂了)
十豆三 2004-10-15
  • 打赏
  • 举报
回复
改成上面的不行吗,为什么要用API实现?
lihuaming 2004-10-15
  • 打赏
  • 举报
回复
谢谢!用api如何实现?
十豆三 2004-10-15
  • 打赏
  • 举报
回复
IF NOT DIRECTORY(DTOS(DATE()))
MD DTOS(DATE())
ENDIF
相关推荐
发帖
VFP

2574

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2004-10-15 09:51
社区公告
暂无公告