【问题标题】:Download URL File from Direct Download URL? | C++从直接下载 URL 下载 URL 文件? | C++
【发布时间】:2021-02-26 16:57:43
【问题描述】:

所以基本上我正在尝试从直接下载链接的 URL(而不是 HTML/PHP)下载文件,例如:https://cdn.discordapp.com/attachments/0/0/file.txt。我希望我的程序从运行应用程序的同一目录中的直接下载链接下载某个文件,我知道这在 C# 中使用 WebClient.DownloadFile 是可能的,但我不确定如何在 C++ 中使用类似的东西.如果您能提供帮助,那就太棒了,谢谢您,祝您有美好的一天。

【问题讨论】:

  • 你需要一个 HTTP 库。 C++ 不作为标准库的一部分执行此操作。
  • 您可以使用libcurl 来实现。
  • 既然你提到了 Visual Studio,你可能是在 Windows 上运行你的程序,是吗? Windows 有一个URLDownloadToFile() 函数。或者,您可以改用 Windows 的 WinInet API,有关详细信息,请参阅 HTTP Sessions。或者,就像其他人所说的那样,只需使用 3rd 方 HTTP 库,例如 libcurl

标签: c++ visual-studio visual-c++


【解决方案1】:

在我看来,您可以使用URLDownloadToFile 从该网址下载文件。

我打开了你给的链接,但是网页报错,没有找到任何txt。因此,您可以参考以下示例:

#include <iostream>
#include <urlmon.h>
#pragma comment(lib,"urlmon.lib")

using namespace std;

int main()
{
    HRESULT hr = URLDownloadToFile(0, L"http://pic104.nipic.com/file/20160715/6171480_185807154956_2.jpg", L"D:\\testfolder\\sky.jpg", 0, NULL);
    if (hr == S_OK)
    {
        cout << "ok" << endl;
    }

    return 0;
}

当然,你也可以使用第三方库,比如libcurl

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 2023-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2013-03-04
    • 2016-07-23
    相关资源
    最近更新 更多