+ -
当前位置:首页 → 问答吧 → WinInet类实现HTTP服务器文件下载,如何判断文件下载完成

WinInet类实现HTTP服务器文件下载,如何判断文件下载完成

时间:2011-12-15

来源:互联网

RT

作者: pudge20102011   发布时间: 2011-12-15

BOOL InternetReadFile(
  __in HINTERNET hFile,
  __out LPVOID lpBuffer,
  __in DWORD dwNumberOfBytesToRead,
  __out LPDWORD lpdwNumberOfBytesRead
);

最后一个参数得到的值为0,而且该函数返回true

作者: maoxing63570   发布时间: 2011-12-15

有一个HttpQueryInfo函数可以知道。
前段时间做过用 wininet 下载特定URL资源的功能。不过记得不太清楚了。

给你一个blog地址。
讲得非常详细!

C/C++ code

//查询content-length大小
    dwContentLen = 0;
    dwSizeDW = sizeof(DWORD);
    bRet = HttpQueryInfo(hRequestHead, HTTP_QUERY_FLAG_NUMBER | HTTP_QUERY_CONTENT_LENGTH, &dwContentLen, &dwSizeDW, NULL);
    if (bRet)
    {
        //检查是否文件过大
        if (dwContentLen > MAX_DOWNLOAD_BYTESIZE)
        {
            bRet = FALSE;
            goto _END_OF_DOWNLOADURL;
        }
    }




楼主给点分吧。。。
我已经没有分问问题了。。。

作者: gjt19910817   发布时间: 2011-12-15

上面那个dwContentLen就是文件的字节数了。。。
下载的时候判断一下是否和下载的字节数相同。

其实也不用那么复杂应该。
应为你下载需要读写文件。而读写文件的操作是“阻塞式”的。不下载完成是不会继续执行下面的代码的。

作者: gjt19910817   发布时间: 2011-12-15

热门下载

更多