通过C/C++基于http下载文件
2023-09-11 14:14:04 时间
简介
Windows系统如何通过C/C++下载互联网上的文件呢?这里笔者给大家演示一个最简单的方法,利用Windows提供的urlmon库,可以快速实现文件下载的简单实例。
注:本文内容部分参考了《非安全》编辑部出版的《Hack编程实例精讲》系列书籍,在此致谢。
C++代码样例
#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <windows.h>
#include <urlmon.h>
#pragma comment(lib, "urlmon.lib")
using namespace std;
BOOL FileExistsStatus(const CHAR* path)
{
DWORD dwAttribute = GetFileAttributes(path);
if (dwAttribute == 0XFFFFFFFF) return false; //0XFFFFFFFF表示文件不存在
else return true;
}
BOOL DownloadFiles(const CHAR* url, const CHAR* downloadPath)
{
if (URLDownloadToFile(NULL, url, downloadPath, 0, 0) == S_OK && FileExistsStatus(downloadPath)) return true;
else return false;
}
int main(int argc, char* argv[])
{
if (DownloadFiles(argv[1], argv[2])) printf("OK!\n");
else printf("Error!\n");
return 0;
}
演示效果
运行界面
实现效果
相关文章
- [C++功能函数] 判断文件&目录是否存在
- C++ 根据分隔符分割字符串为 vector 字符串数组
- C++写的UrlEncode和UrlDecode
- Linux(C/C++)下的文件操作open、fopen与freopen
- C/C++各头文件作用总结
- C/C++ stat()函数:获取文件状态
- iOS 静态类库 打包 C,C++文件及和OC混编
- C++文件读写详解(ofstream,ifstream,fstream)
- C++中extern关键字的作用
- C++ 二维数组
- C++求解组合数的具体实现
- 结合C++和GDAL实现shapefile(shp)文件的创建和写入
- 《C++ 黑客编程揭秘与防范(第2版)》——6.1 PE文件结构
- C++读取文件夹中所有文件的路径,包含子文件夹
- C/C++语言宏定义##连接符和符#的使用
- 基于C++实现(控制台)二叉树和赫夫曼树的建立存储表示及其基本操作【100010610】
- [第八届蓝桥杯省赛C++B组]购物单
- 代码中的输入输出(重定向、文件流C/C++)
- Visual studio C++桌面应用程序添加外部文件引用
- 106、【树与二叉树】leetcode ——501. 二叉搜索树中的众数:双指针法+哈希表法(C++版本)
- 104、【树与二叉树】leetcode ——98. 验证二叉搜索树:递归法[先序+中序+后序]+迭代法(C++版本)
- 83、【栈与队列】leetcode ——20. 有效的括号(C++版本)
- c++文件读写操作
- 请问c++中的#include "stdafx.h"是什么意思?
- C++实现遍历指定文件或文件夹
- C++实现INI文件读写
- C++中使用 ofstream ifstream 写入读取文件