怪怪怪,真的很奇怪!关于FileExists的问题

Cute_Rascal 2003-04-21 04:54:15
procedure TFormMain.ComboBoxFomerDataChange(Sender: TObject);
begin
EdtPipeName.Text:=ComboBoxFomerData.Text;
if FileExists('.\'+EdtPipeName.Text+'.dat') then
showmessage(EdtPipeName.Text+'数据是存在的!')
else
showmessage(EdtPipeName.Text+'数据是不存在的!');
Unitdatamanagement.MyManagement.GetData(ComboBoxFomerData.Text);
//这里调用例外的一个程序对ComboBox所选中的文件进行操作。
……//进行其他的调用
end;

现在的问题是,如果我在第一次执行上面的代码的时候,如果在可执行文件夹下有一个文件,则提示文件存在。对这个文件中的数据提取出来以后并执行计算。然后在选择这个文件的时候,就提示找不到文件了。

我的意思是:
1,选择一个选项,这个时候提示,这个文件是存在的;
2,程序提取出所选中的文件中的数据,并进行计算,期间没有任何错误发生;
3,重复第一步的工作,选择同一个选项,却提示文件是不存在的。可是我并没有删除这个文件呀,而且文件也确确实实还健在呀。

我在打开文件的时候也记得用CloseFile了呀。

不知道哪位前辈曾经遇到这样的问题,或者对这个问题有什么好的建议?
...全文
132 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Cute_Rascal 2003-04-22
  • 打赏
  • 举报
回复
谢谢了,楼上的兄弟,你给我提供了很好的思路!
u2m 2003-04-21
  • 打赏
  • 举报
回复
你用OpenDialog等控件的时候它把相对路径给改变了,是要用绝对路径的,我遇到过此问题.
2)
if SaveDialog1.filename='' then exit;
Cute_Rascal 2003-04-21
  • 打赏
  • 举报
回复
谢谢各位的关心,小弟已经解决了这个问题:

使用绝对路径就可以了。如果要使用相对路径也是可以的,比如
Path:=ExtractfileDir(Application.ExeName)+'\';
if FileExists(Path+Pipename+'.dat') then

呵呵

不过,我遇到这样一个问题,代码如下
SaveDialog1:=TSaveDialog.Create(self);
SaveDialog1.Title := '把运算的结果保存在:';
if SaveDialog1.Execute then
begin
FileSaveTo:=SaveDialog1.FileName+'.txt';
AssignFile(MyResultFile, FileSaveTo);
try
rewrite(MyResultFile);
writeln(MyResultFile,'试验时间:'+ DateToStr(Date)+' '+timetostr(Now));
finally
closefile(MyResultFile);
SaveDialog1.Free;
end;
现在的问题是,如果我在“打开文件”对话框以后,没有输入文件名,而是按了取消按钮,那么程序就会出错。这个错误如何捕捉?
abcdefg171459 2003-04-21
  • 打赏
  • 举报
回复
up
keenleung 2003-04-21
  • 打赏
  • 举报
回复
看看修改后的文件的"创建/修改/访问时间"属性还存不存在

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧