进行主程序后,再没有调用以下这个删除整个目录之前,用AssignFile是没有正常的.//删除目录 isError为出错时是否提示出错信息,为真时提示,否则退出过程不提示 create by xsw
procedure deletedir(Mpath:string; IsError:boolean);
var
  vSearchRec: TSearchRec;
  K: Integer;
begin
  try
    K := FindFirst(Mpath+'\*.*', faAnyFile, vSearchRec);
    while K = 0 do
    begin
      if (vSearchRec.Attr and faDirectory > 0) and (Pos(vSearchRec.Name, '..') = 0) then
      begin
        deletedir(mPath + '\' + vSearchRec.Name, IsError);
        rmdir(pchar(mPath + '\' + vSearchRec.Name));//删除目录
      end else if Pos(vSearchRec.Name, '..') = 0 then
      begin
        FileSetAttr(pchar(vSearchRec.Name),0); //取消文件为普通属性
        DeleteFile(Mpath + '\'+vSearchRec.Name); //删除文件
      end;
        
      K := FindNext(vSearchRec);
    end;    FindClose(vSearchRec);
    //Rmdir(Mpath); //删除目录 (加入这名后总会引起reset(F:fileName)函数出现错误)
  except
    on E:exception do
      if IsError then
        messagebox(application.handle,pchar('不好意思了,出错了!'+#13#10
                               +'出错原因:'+E.Message+#13#10#10
                               +'如有必要,请联络程序供应商!'),'温馨提示', mb_iconError);
  end;
end;
但调用之后,再用AssignFile(Filename:String)就出错了,出错原因好像是Filename不是一个合法的文件,但跟踪时文件名是正确的,文件也存在,为什么会出错呢?