2012-04-12 61 views
1

我需要从http://nppes.viva-it.com/NPI_Files.html下载一个文件,问题是每个月文件名都会改变。我希望能够在文件名中使用通配符,例如NPPES_Data_Dissemination _ *。zip,但不适用于WebClient。有没有其他方法可以在不知道文件的确切名称的情况下使用c#以编程方式下载此文件。在这个网页上总会有1个和唯一的.zip文件...程序只是不知道名字是什么。任何想法,将不胜感激!!使用WebClient下载一个zip文件,名字可以每月更改

谢谢!

+0

您无法请求您不知道名称的资源。服务器使用您请求的资源进行响应。你需要找到名字。 – 2012-04-12 22:53:12

+0

HTTP协议不支持。 – SLaks 2012-04-12 22:54:44

回答

1

无法通过HTTP请求名称不明的资源。

取而代之,请为http://nppes.viva-it.com/NPI_Files.html制作WebRequest并解析它以获取您感兴趣的字符串,然后请求它;或者,让NPI人员为文件提供一致的名称(因为只有一个名称,或许它应该称为_latest.zip或其他东西?)

1

您应该使用HTML Agility Pack(在NuGet上)来解析HTML并找到<a href="">

+0

就像SLaks说的那样,你应该先抓取页面来获取文件名,然后再下载文件请求。 – Zachary 2012-04-12 22:58:15