如何在C#中下载没有扩展名的文件

时间:2010-09-29 16:36:46

标签: c# file download

好的,我想从网站下载文件,但该文件缺少扩展名。 (这是一个图像文件,我知道的很多,但链接不提供实际的扩展名)

当我使用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末尾没有扩展名。 有问题的网站在网页浏览器中显示图像正常,但是当仅查看图像时没有扩展名,因此它被处理为未知文件(不显示图像)。

简单地说:如果没有指定扩展名,我如何下载文件?

提前致谢!

2 个答案:

答案 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 {}
}

这只是一种解决方法,我想......不是一个真正的解决方案......