解决方案 »

  1.   


    function IsFileInUse(fName : string): boolean;
    var
       HFileRes : HFILE;
    begin
      Result := false; //返回值为假(即文件不被使用)
      if not FileExists(fName) then exit; //如果文件不存在则退出
      HFileRes := CreateFile(pchar(fName),
                             GENERIC_READ or GENERIC_WRITE,
                             0 {this is the trick!},
                             nil,
                             OPEN_EXISTING,
                             FILE_ATTRIBUTE_NORMAL,
                             0);
      Result := (HFileRes = INVALID_HANDLE_VALUE); //如果CreateFile返回失败那么Result为真(即文件正在被使用)
      if not Result then//如果CreateFile函数返回是成功
      CloseHandle(HFileRes);  //那么关闭句柄
    end;