我用GetFileAttributes这个函数来检测其他电脑上的一个文件是否存在, 如果那个 电脑网断了   那么执行这个函数时候会hang很长时间  大约27s  有没有什么办法让它不hang? 

解决方案 »

  1.   

    用线程,WaitForSingleObject 设置超时
      

  2.   


    typedef struct _WIN32_FIND_DATA { 
    ­
    DWORD dwFileAttributes; //文件属性 
    ­
    FILETIME ftCreationTime; // 文件创建时间 
    ­
    FILETIME ftLastAccessTime; // 文件最后一次访问时间 
    ­
    FILETIME ftLastWriteTime; // 文件最后一次修改时间 
    ­
    DWORD nFileSizeHigh; // 文件长度高32位 
    ­
    DWORD nFileSizeLow; // 文件长度低32位 
    ­
    DWORD dwReserved0; // 系统保留 
    ­
    DWORD dwReserved1; // 系统保留 
    ­
    TCHAR cFileName[ MAX_PATH ]; // 长文件名 
    ­
    TCHAR cAlternateFileName[ 14 ]; // 8.3格式文件名 
    ­
    } WIN32_FIND_DATA, *PWIN32_FIND_DATA;
    WIN32_FIND_DATA ffd ; 
    ­
    HANDLE hFind = FindFirstFile("c:\\test.dat",&ffd); 
    Try this
      

  3.   

    判断一个文件是否存在,
    直接 _taccess 一下就OK
      

  4.   

    _FindFirstFile   _access 都已经试过了 跟GetFileAttributes一样
      

  5.   

    使用select机制,在正式操作之前尝试一下连接是否可用。