try
  myFile:=TFileStream.Create(FileName,fmOpenRead);
except
  on E: Exception do
     Showmessage(E.Message);
end;
我用上面代码来访问一个文件,但是当这个文件被其他进程独占时,会在我捕捉到异常之前弹出一个异常警告对话框,请问如何先判断一个文件是否被独占,或者在我对这个异常处理之前不让系统弹出那个异常对话框。

解决方案 »

  1.   

    var 
      Handle: THandle;
    begin
      Handle := FileOpen(FileName, fmShareDenyNone);
      if INVALID_HANDLE_VALUE = Handle then
        yeah // 文件不存在或给其它独占
      else
      begin
        // 没有给其它独占,可以使用。
        CloseHandle(Handle); //关闭打开的文件    
      end;
    end;
      

  2.   

    谢谢,试过了,不过好像用原来的那个TFileStream类的Create方法不行。:(。