deletefile的使用(50分)

  • 主题发起人 主题发起人 pzj
  • 开始时间 开始时间
P

pzj

Unregistered / Unconfirmed
GUEST, unregistred user!
为何我在程序中用deletefile('file.bat')时不能删除文件file.bat呢?
 
deletefile('c:/yinhua/Autoexec.bat')

完整的路径名~~~
 
你没有指明路径,这样就好了
deletefile('c:/file.bat')
 
给全路径也出现类似的问题怎么办呢?
 
给全路径如果还出现问题。只能说明是文件的属性是唯读或操作权限不够。
 
那就有可能是您的 .bat文件不存在~~~
贴出您的代码。
 
我的代码是这样的
各位看看那里不对了

var
memo1:tmemo;
mybatfile:textfile;
str,substr,insstr:string;
i:integer;
begin
memo1:=tmemo.Create(form1);
memo1.Parent :=form1;
if filesearch('prepare.bat',extractfilepath(application.exename))<>'' then
begin
assignfile(mybatfile,'prepare.bat');
reset(mybatfile);
Deletefile('prepare.bat');
Memo1.Lines.LoadFromFile('prepare.bat');
str:=memo1.Text;
substr:='pengzj';
insstr:='454545';
i:=pos(substr,str);
if i>0 then
begin
delete(str,i,Length(SubStr));
Insert(insstr,str,i);
end;
Memo1.Lines.Clear;
Memo1.Text:=Str;
Deletefile(''''+extractfilepath(application.exename)+'prepare.bat'+'''');
Memo1.Lines.SaveToFile('prepare.bat');
closefile(mybatfile);
end;
end;
 

assignfile(mybatfile,'prepare.bat');
reset(mybatfile);
Deletefile('prepare.bat');
//没有关闭文件,怎么删除呢?
 
我试过了
关闭文件也删不了
 
Memo1.Lines.SaveToFile('prepare.bat');
你最后又生成了prepare.bat文件,所以看起来就跟删除不了的情况一样了,还有,老大的语句顺序有问题

var
memo1:tmemo;
mybatfile:textfile;
str,substr,insstr:string;
i:integer;
begin
memo1:=tmemo.Create(form1);
memo1.Parent :=form1;
if filesearch('prepare.bat',extractfilepath(application.exename))<>'' then
begin
// assignfile(mybatfile,'prepare.bat');
// reset(mybatfile);//Load文件应该不需要这两句
Memo1.Lines.LoadFromFile('prepare.bat');
Deletefile('prepare.bat');//换一下位置
str:=memo1.Text;
substr:='pengzj';
insstr:='454545';
i:=pos(substr,str);
if i>0 then
begin
delete(str,i,Length(SubStr));
Insert(insstr,str,i);
end;
Memo1.Lines.Clear;
Memo1.Text:=Str;
// Deletefile(''''+extractfilepath(application.exename)+'prepare.bat'+'''');//文件已经不存在了,再删除就搞不懂是什么意思了
Memo1.Lines.SaveToFile('prepare.bat');
closefile(mybatfile);
end;
end
 
接受答案了.
 
后退
顶部