winapi获取网络文件大小

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winapi获取网络文件大小相关的知识,希望对你有一定的参考价值。

HINTERNET hNet = ::InternetOpen(L"Internet Explorer", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
if (hNet == NULL) {
	MessageBoxA(NULL, "hNet is NULL", NULL, NULL);
}
HINTERNET hUrlFile = ::InternetOpenUrlA(hNet, url, NULL, 0, INTERNET_FLAG_RELOAD, 0);
if (hUrlFile == NULL) {
	MessageBoxA(NULL, "hUrlFile is NULL", NULL, NULL);
}
char buffer[100];
DWORD bufLen = sizeof(buffer);
DWORD WIndex = 0;
memset(buffer, 0, 100);
BOOL bQuery = ::HttpQueryInfoA(hUrlFile, HTTP_QUERY_CONTENT_LENGTH, buffer, &bufLen, &WIndex);
dwFileSize = (DWORD)atoi(buffer);
InternetCloseHandle(hUrlFile);
InternetCloseHandle(hNet);

 

主要用到HttpQueryInfoA这个函数,第三个参数是用来接收CONTENT_LENGTH的,不过要用字符数组来接收,然后再用atoi转成int类型,这样就能得到网络文件的大小了。

以上是关于winapi获取网络文件大小的主要内容,如果未能解决你的问题,请参考以下文章

java file 获取文件大小 是啥单位

iOS获取网络图片大小

如何获取(网络)字体中单个字符的大小?

ios获取缓存文件的大小并清除缓存

iOS获取缓存文件的大小并清除缓存

winapi创建不能改变大小的窗口