windows C++,下载目录中的文件

xoshrz7s  于 2023-02-13  发布在  Windows
关注(0)|答案(2)|浏览(177)

我用这段简单的代码从url下载一个文件,打开浏览器

#include <iostream>
#include<Windows.h>
#include<string>

using namespace std;

int main()
{
    string dwnld_URL = "http://www.url.com/downloadpage";
    ShellExecuteA(NULL, "open", dwnld_URL.c_str(), NULL, NULL, SW_SHOWNORMAL);

    return 0;
}

但是我想把文件放到当前目录而不是默认的下载文件夹中。有什么办法可以做到吗?

cwtwac6a

cwtwac6a1#

如果你在windows上,你可以使用

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

using namespace std;
int main()
{
    string dwnld_URL = "http://www.url.com/downloadpage/filename.txt";
    string savepath = "C:\\tmp\\filename.txt";
    URLDownloadToFile(NULL, dwnld_URL.c_str(), savepath.c_str(), 0, NULL);

    return 0;
}
wpx232ag

wpx232ag2#

首先阅读有关HTTPURL的更多信息。
您需要一些HTTP客户端库;你可以考虑libcurl,但是QtPOCO都有一些HTTP客户端的函数。也许Windows可能有一些特定的函数。
libcurlQtPOCO都是free software库,也可以在Linux和POSIX系统上运行。
如果您需要HTTP服务器库(看起来不是这样),您也可以找到一些(例如Wtlibonion,...)
关于你的评论(应该在你的问题中)“但我怎么知道”,直觉可能是,对于远程数据访问,重点放在协议上。
无论您使用的是什么库(或框架),您都需要花费数小时或数天的时间来研究它,阅读它的文档和教程。

相关问题