我的问题是我不知道如何在知道URL中的文件名或文件扩展名的情况下下载文件,例如http://findicons.com/icon/download/235456/internet_download/128/png?id=235724
我希望你能帮帮我
您可以Content-Disposition
使用HTTP
请求检查响应标头以获取文件名。这将是一个更通用的解决方案,因此即使URL中不包含文件名,它也可以工作:
var url = "http://findicons.com/icon/download/235456/internet_download/128/png?id=235724";
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
var fn = response.Headers["Content-Disposition"].Split(new string[] { "=" }, StringSplitOptions.None)[1];
string basePath = @"X:\Folder\SubFolder"; // Change accordingly...
var responseStream = response.GetResponseStream();
using (var fileStream = File.Create(Path.Combine(basePath, fn)))
{
responseStream.CopyTo(fileStream);
}
}
上面的代码使用了某些方法和功能,您可以在此处找到更多信息:
HTTP
响应流时,您无需寻找起点,因为它已经在起点,这样做会引发异常。因此,为了安全起见,请像上面的代码中一样使用它。希望这个答案对您有帮助:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句