表单程序中,vfp的表从SQL下载后,放在c:\documents and setngs\administrator\local settings\temp下,用完后,在表单中的destroy方法中,将这个临时文件删除。删除前有二种不同的操作方式:1、在表单退出时,SQL中的数据没有删除时,退出正常。没有异常的临时表文件。2、删除SQL中的数据后,退出时出错,系统报告说文件在使用。经检查,发现在临时文件夹中有一个没有文件名,只有扩展名的“.dbf”文件。destroy的程序如下:(其中windowtemp_loc=sys(2023)+"\")
if used(_ctm)
use in "&_cTm"
endif
erase windowtemp_loc+"&_cTm"+".dbf"
将程序改为以下内容,先检查这个文件是否存在,结果,明明这个文件不存在,可是它执行条件为真的内容。
if file(windowtemp_loc+"&_cTm"+".dbf")
if used(_ctm)
use in "&_cTm"
endif
erase windowtemp_loc+"&_cTm"+".dbf"
endif
再改为以下内容,还是执行删除文件的语句:
if file(windowtemp_loc+".dbf")
if used(_ctm)
use in "&_cTm"
endif
erase windowtemp_loc+".dbf"
endif
请问这是哪里出了问题,如何解决,或如何判断文件存在或文件在使用?
------解决方案--------------------------------------------------------
确保你生成的文件名称正确。
然后将文件 COPY 到指定目录。
在主程序的 Read Events 之后加删除代码
Erase 路径\*.DBF