不用FileExists,就用Windows API能否判断c:\a.txt是否存在?

解决方案 »

  1.   

    function FileExistsAPI(const FileName:string):boolean;
    var hf:hFile;   
    begin
      hf:=CreateFile(PChar(FileName),GENERIC_READ,FILE_SHARE_READor FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
      Result:=not(hf=INVALID_HANDLE_VALUE);
      if Result then Result:=GetLastError=0 else CloseHandle(hf);
    end;
      

  2.   

    上面的有点小问题,稍微修改一下。
    function FileExistsAPI(const FileName:string):boolean;
    var hf:hFile;   
    begin
      hf:=CreateFile(PChar(FileName),GENERIC_READ,FILE_SHARE_READor FILE_SHARE_WRITE,nil,OPEN_EXISTING,0,0);
      Result:=not(hf=INVALID_HANDLE_VALUE);
      if Result then CloseHandle(hf);
    end;
      

  3.   

    DWORD GetFileAttributes(
      LPCTSTR lpFileName   // pointer to the name of a file or directory
    );
    不存在返回0xFFFFFFFF