问题描述
c++上下载文件,Windows下应该调用什么命令行?
问题解答
回答1:Windows的cmd里并没有直接给用户用的专门调用HTTP下载的控制台工具。如果你是程序调用你可以自带一个wget或者aria2c的Windows版可执行文件。就不用写HTTP下载代码了。
PowerShell 2里可以用
$WebClient = New-Object System.Net.WebClient$WebClient.DownloadFile('https://www.example.com/file','C:pathfile')
PowerShell 3里有了wget语句,等同于
Invoke-WebRequest -Uri 'http://www.example.com' -OutFile 'C:pathfile'
不过还是aria2c功能强,可以断点续传、多线程下载。支持HTTP、FTP、BT、磁力链接之类的。
回答2:为啥用命令行下载,直接下载不可以吗?看起来是HTTP协议的,一个简单的方法就是使用windows自带的WinHTTP来做,由于直接由内核实现,性能上主要取决于使用者,虽然下载的话,基本是不会有啥性能问题的。。。。MSDN上有相关的讨论
https://social.msdn.microsoft...
这里是官方文档https://msdn.microsoft.com/en...
这比用socket手写http客户端要方便很多。
回答3:用Python吧,Windows不像Linux直接提供了这种支持,另外就是像楼上说的用Power-Shell