2014-10-09 55 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