在日常工作中,我們經常遇到需要批量下載大量文件的場景。雖然迅雷等下載工具提供了批量下載功能,但存在明顯短板:規則設置較為簡單,且最多只能生成 999 個下載任務。當面臨數千個文件(如 https://URL/0001.zip 到 https://URL/9999.zip)時,這種限制就顯得力不從心。
在 CSDN 上發現一篇利用 C 語言配合迅雷實現批量下載的文章,啟發了我。核心思路很簡單:編寫 C 程序批量生成包含所有下載鏈接的 HTML 文件,然後在瀏覽器中打開,利用迅雷的「批量下載全部鏈接」功能一次性添加任務。經實測,迅雷處理幾千個任務依然穩定,而 QQ旋風則直接無響應。
/*
* 批量下載鏈接生成器
* 生成 download.htm,配合迅雷批量下載使用
*/
#include <stdio.h>
// 將數字轉換為 4 位數字符串(不足補零)
void trans(char *c, int i) {
if (i >= 0 && i < 10)
sprintf(c, "000%d", i);
else if (i < 100)
sprintf(c, "00%d", i);
else if (i < 1000)
sprintf(c, "0%d", i);
else
sprintf(c, "%d", i);
}
int main(int argc, char* argv[]) {
char buff[100];
char c[5] = "0001";
FILE* fp;
int i = 1;
int Max = 9999; // 可根據實際需求修改
fp = fopen("download.htm", "w");
fputs("<html>\n", fp);
for (i = 1; i <= Max; i++) {
trans(c, i);
sprintf(buff, "<p><a href=\"https://URL/%s.zip/\">%s</a></p>\n", c, c);
fputs(buff, fp);
puts(buff); // 控制台顯示進度
}
fputs("</html>", fp);
puts("write ok");
fclose(fp);
return 0;
}
download.htm優勢:突破 999 任務限制,靈活控制命名規則(如補零格式),適合規律性文件批量下載。
補充:Linux 下可用 wget 或 curl 配合腳本直接下載,但 Windows 環境下此方案最為直觀易用。