2014-10-09 56 views
0

我想从URL下载文件,文件名经常更新 对于例如:filename_Date.zip,其中日期改变。C#打开Url并下载文件,文件名更改的最后部分

下面是我用

Web客户端Web客户端=新Web客户端()的查询; webClient.DownloadFile(“http://nppes.viva-it.com/NPPES_Deactivated_NPI_Report_081214.zip”,@“C:\ Users \ gnanasem \ Documents \ NPIMatcher \ NPI.zip”);

登陆页面的网址:http://nppes.viva-it.com/NPI_Files.html 在这里你可以看到多个文件,我想下载第一个。

回答

0

这样做的一种方式是:

  1. 获取网页的HTML
  2. 使用正则表达式
  3. 查找包含相关文本的第一个网址找到网页上的网址,你的情况“禁用”
  4. 下载文件

我得到它的工作是这样的:

using (var webClient = new WebClient()) 
{ 
    var websiteHtml = webClient.DownloadString("http://nppes.viva-it.com/NPI_Files.html"); 

    var urlPattern = "href\\s*=\\s*(?:[\"'](?<1>[^\"']*)[\"']|(?<1>\\S+))"; 
    Match match = Regex.Match(websiteHtml, urlPattern, RegexOptions.IgnoreCase | RegexOptions.Compiled, TimeSpan.FromSeconds(1)); 

    var urlToDownload = string.Empty; 

    while (match.Success) 
    { 
     var urlFound = match.Groups[1].Value; 

     if (urlFound.ToLower().Contains("deactivated")) 
     { 
      urlToDownload = urlFound; 
      break; 
     } 

     match = match.NextMatch(); 
    } 

    webClient.DownloadFile(urlToDownload, @"C:\Users\gnanasem\Documents\NPIMatcher\NPI.zip"); 
} 
+0

究竟是我做了什么来解决这个问题,非常感谢分享这个。 – user2060375 2014-10-10 09:30:01

相关问题