好的,我想从网站下载文件,但该文件缺少扩展名。 (这是一个图像文件,我知道的很多,但链接不提供实际的扩展名)
当我使用webrequest或webclient下载文件时,我收到“404 file not found”异常。
WebClient wc = new WebClient();
Stream strm = wc.DownloadFile("http://some_site.some_domain/some_image.","C:/some_directory/save_name.some_extention");
请注意URL末尾没有扩展名。 有问题的网站在网页浏览器中显示图像正常,但是当仅查看图像时没有扩展名,因此它被处理为未知文件(不显示图像)。
简单地说:如果没有指定扩展名,我如何下载文件?
提前致谢!
答案 0 :(得分:0)
所以你试图确定下载后给文件的扩展名是什么?如果URL没有,则必须检查文件的实际数据。
您可以检查文件的开头,看它是否与已知的有效文件类型匹配。例如,PNG似乎将'PNG'作为字节2-4(至少在我检查过的那些中)。通过查看该数据,您应该能够以相当高的准确度确定格式。
答案 1 :(得分:0)
这将是我最好的建议,如果这不起作用我不知道如何解决你的问题......
List<string> fileExtensions = new List<string>(){"png","gif","bmp","jpg"}// other known image file extensions here...
WebClient wc = new WebClient();
foreach(var extension in fileExtensions)
{
try
{ wc.DownloadFile("http://some_site.some_domain/some_image."+extension,"C:/some_directory/save_name."+extension);
break;
}
catch {}
}
这只是一种解决方法,我想......不是一个真正的解决方案......