一个备份的表单,连编后运行时出现“文件正在使用”的错误(但不是备份“全部”时没有问题),也不知什么原因,请老师帮助指点,谢谢!
表单中combo1中选项是aaa、bbb、全部 && aaa、bbb是数据表
表单中command1(备份到按钮),代码:
If thisform.combo1.value="全部"
Thisform.text1.value=getdir()+"数据"+allt(str(year(date())))+"-"+allt(str(month(date())))+"-"+allt(str(day(date())))
Else
If not empty(thisform.combo1.value)
Thisform.text1.value=PUTFILE("数据备份",allt(thisform.combo1.value),"dbf")
Else
Messagebox("请选择要备份的数据。",64+0,"数据备份")
Thisform.combo1.setfocus
Endif
Endif
表单中text1用来显示备份路径目录
表单中command2(确定按钮)代码:
Set safety off
Set talk off
If empty(thisform.combo1.value)
Messagebox("请选择要备份的数据。",64+0,"数据备份")
Thisform.combo1.setfocus
Else
If empty(thisform.text1.value)
Messagebox("请选择数据备份去向。",64+0,"数据备份")
Thisform.command3.setfocus
ELSE
CLOSE all
If thisform.combo1.value#"全部" && 分别备份
_fpt=allt(juststem(thisform.text1.value))+".FPT"
_cdx=allt(juststem(thisform.text1.value))+".CDX"
If file(sys(5)+curdir()+""+_fpt) and file(sys(5)+curdir()+""+_cdx)
Copy file sys(5)+curdir()+""+justfname(allt(thisform.text1.value)) to allt(thisform.text1.value)
Copy file sys(5)+curdir()+""+_fpt to justpath(allt(thisform.text1.value))+"\"+_fpt
Copy file sys(5)+curdir()+""+_cdx to justpath(allt(thisform.text1.value))+"\"+_cdx
Messagebox(juststem(allt(thisform.text1.value))+"备份成功!",64+0,"数据备份")
Else
If file(sys(5)+curdir()+""+_fpt)
Copy file sys(5)+curdir()+""+justfname(allt(thisform.text1.value)) to allt(thisform.text1.value)
Copy file sys(5)+curdir()+""+_fpt to justpath(allt(thisform.text1.value))+"\"+_fpt
Messagebox(juststem(allt(thisform.text1.value))+"备份成功!",64+0,"数据备份")
Else
If file(sys(5)+curdir()+""+_cdx)
Copy file sys(5)+curdir()+""+justfname(allt(thisform.text1.value)) to allt(thisform.text1.value)
Copy file sys(5)+curdir()+""+allt(juststem(thisform.text1.value))+".CDX" to justpath(thisform.text1.value)+"\"+allt(juststem(thisform.text1.value))+".CDX"
Messagebox(juststem(allt(thisform.text1.value))+"备份成功!",64+0,"数据备份")
Else
Copy file sys(5)+curdir()+""+justfname(allt(thisform.text1.value)) to allt(thisform.text1.value)
Messagebox(juststem(allt(thisform.text1.value))+"备份成功!",64+0,"数据备份")
Endif
Endif
Endif
ELSE && 备份全部
If DIRECTORY(allt(thisform.text1.value))=.t. && 找到text1所显示的目录
Sask=messagebox("所选的路径已经包含全部数"+chr(13)+"据备份,是否覆盖?",32+4,"数据备份")
If Sask=6
Delete file allt(thisform.text1.value)+"\*.*"
rd allt(thisform.text1.value)
md allt(thisform.text1.value)
*运行到以下时出现“文件正在使用”的错误,如果忽略的话,则各数据表未能备份,但.cdx\.fpt能备份
Copy file sys(5)+curdir()+""+"*.dbf" to allt(thisform.text1.value)+"\*.dbf"
Copy file sys(5)+curdir()+""+"*.cdx" to allt(thisform.text1.value)+"\*.cdx"
Copy file sys(5)+curdir()+""+"*.fpt" to allt(thisform.text1.value)+"\*.fpt"
Copy file sys(5)+curdir()+""+"*.dbc" to allt(thisform.text1.value)+"\*.dbc"
Copy file sys(5)+curdir()+""+"*.dct" to allt(thisform.text1.value)+"\*.dct"