很简单的问题。就是如果知道我的指定目录里面有没有一个文件,有就略过。没有就创建。(0分)

  • 主题发起人 主题发起人 inbreak
  • 开始时间 开始时间
I

inbreak

Unregistered / Unconfirmed
GUEST, unregistred user!
如题。我在作一个数据库的程序。<br><br>可是有一个麻烦。我是想法是只发布一个可执行文件,数据库是后期创建的。。<br><br>也就是说,我要在程序启动时检查有没有luozs.db 文件,没有就创建。有就不创建喽。<br><br>程序如下:<br><br>var<br>&nbsp; Luozs:string;<br>begin<br>&nbsp; Luozs:='Luozs.db';<br>&nbsp; if Luozs &lt;&gt; (ExtractFilePath(Application.ExeName)+luozs) then<br>&nbsp; &nbsp; &nbsp;{先检查目录下是否存在 Luozs.db 数据库,如果不存在则...}<br>&nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; showmessage('数据库不存在');<br>&nbsp; &nbsp; &nbsp; ................{此部分为我创建数据库的部分}<br>&nbsp; &nbsp; &nbsp; end;<br>end;<br><br>当然编译说,不管有没有luozs.db文件。程序都说‘数据库不存在’(也就是我showmessage的那句话)<br><br>各位大哥各位大姐各位侠,帮帮小弟。。<br><br>小弟现在正在线等待中 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 
不好意思,刚才看错了<br><br>用这个函数试试看:fileexists<br>&nbsp;if fileexists(ExtractFilePath(Application.ExeName)+luozs)= false then<br>&nbsp;begin<br>&nbsp; showmessage('数据库不存在');<br>…………<br>&nbsp;end;
 
to:ufo!<br><br>if 非要是这样吗?? If...then...else ???<br><br>你有没有搞错呀。
 
var<br>&nbsp; &nbsp; s: String;<br>begin<br>&nbsp; &nbsp; s := FileSearch('Luozs.db',ExtractFilePath(Application.ExeName));<br>&nbsp; &nbsp; if s&lt;&gt;'' then <br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; //执行相应的代码<br>&nbsp; &nbsp; &nbsp; &nbsp; showmessage('已经找到!');<br>&nbsp; &nbsp; end<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; &nbsp; //创建数据库<br>&nbsp; &nbsp; end;<br>//新年到了,没分也送个祝福吧!
 
to inbreak:<br>小气鬼,应该这样:<br>if Luozs &lt;&gt; (ExtractFilePath(Application.ExeName)+'/'+luozs) then<br>
 
用FileExists函数吧,没有问题<br>举例如下:<br>&nbsp; &nbsp;if FileExists('g:/netcollectErr.txt') then<br>&nbsp; &nbsp; &nbsp; &nbsp; ShowMessage('Find')<br>&nbsp; &nbsp; else<br>&nbsp; &nbsp; &nbsp; &nbsp; ShowMessage('No Find');
 
to yeskert1:<br>&nbsp;ExtractFilePath函数返回值最后面是包含了"/"的。<br>&nbsp;extractfiledir 函数是不包含最后的"/"的。<br>我记得是这样的。
 
谢谢大家。<br><br>祝大家新年快乐。万事如意!!<br><br>由于小弟我初来这个论坛。穷一个。。积分不多。<br><br>所以 ̄ ̄ ̄
 
使用FileOpen(filename, fmCreate);
 
to inbreak:<br>var<br>&nbsp; Luozs:string;<br>begin<br>&nbsp; Luozs:='Luozs.db';<br>&nbsp; if Luozs &lt;&gt; (ExtractFilePath(Application.ExeName)+luozs) then<br>&nbsp; &nbsp; &nbsp;{先检查目录下是否存在 Luozs.db 数据库,如果不存在则...}<br>&nbsp; &nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; showmessage('数据库不存在');<br>&nbsp; &nbsp; &nbsp; ................{此部分为我创建数据库的部分}<br>&nbsp; &nbsp; &nbsp; end;<br>end;<br>问题可能就出来你上面的Luozs &lt;&gt; (ExtractFilePath(Application.ExeName)+luozs)这句<br>话,这是STRING比较,你Luozs:='Luozs.db'和ExtractFilePath(Application.ExeName)+luozs<br>得到的字符串肯定不一样,最起码的他们的长度都不一样。改用其它的方法很多的,或都你<br>把Luozs这个前边加上路径看看
 
to fmz:<br><br>非常感谢你的回答,在此,我祝你新年快乐。。<br><br>我试过以上的诸哥哥的说明。基中 UFO!是方法是正确而且也是最简单的。完全可以达到我的要求!<br><br>真是谢谢各们的热心。。<br><br>谢谢各位。祝大家新年快乐。万事如意!
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部