通過C/C++基於http下載檔案
阿新 • • 發佈:2018-12-30
簡介
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;
}
演示效果
執行介面
實現效果