c++ - 下载文件前如何获取文件名

标签 c++ download filenames wininet

我正在尝试从 http: 服务器下载二进制文件。我正在使用函数 InternetOpenUrl() 然后使用 InternetReadFile() 下载文件。是否可以在下载前知道文件名?

我现在获取文件名的方法是 - 下载完成后,使用 GetFileVersionInfo() 并从缓冲区获取 OrginalFilename,然后将文件重命名为 OrginalFilename。

有没有其他方法可以在下载前获取文件名?

谢谢

红酒

最佳答案

查看 HttpQueryInfo。查看 Content-TypeContent-Disposition header 。

如果它只是返回,您可能必须使用 HTTP_QUERY_CUSTOM 来获取原始内容类型,例如“文本/纯文本”。

要获取所有 header (从而确定哪个 header 包含您想要的信息),您可以使用 HTTP_QUERY_RAW_HEADERS_CRLF

关于c++ - 下载文件前如何获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19052117/

相关文章:

html - .htm 或 .html 扩展名 - 哪个是正确的,有什么不同?

c# - 使用 OpenFileDialog 属性时仅获取文件名 "FileName"

c++ - 为什么我的 cairo_surface_t 绘图是半透明的?

c++ - C++向 vector 添加对象会破坏早期的对象

python - 使用 Python mechanize 循环下载文件

Powershell 下载整个目录内容

objective-c - NSCoder 二进制文件格式应应用什么文件扩展名?

.net - 如何将 IntPtr 转换为 Stream?

c++ - 访问对象 unique_ptr 指向

javascript - 使用 javascript 谷歌驱动器下载文档 :can't download files