Loop através de uma URL para encontrar o link trabalhando
Pergunta
Eu estou baixando um arquivo de um site e eu tenho o link. Mas a parte final do link muda para o mês atual. Eu preciso fazer um loop através do link, fazer alterações para a parte mês dela, e baixar o arquivo.
A minha primeira pergunta é como saber se um link falhou, para ir para outro link? Em segundo lugar, pode você pode me sugerir uma forma de laço através do link?
Inicialmente eu fornecer o link em uma caixa de texto.
Aqui está o código atual
if (textBox2.Text != "")
{
System.Net.WebClient we = new System.Net.WebClient();
we.DownloadFile(textBox2.Text, "c:\\NPPES.zip");
//this is the link //"http://nppesdata.cms.hhs.gov/NPPES_Data_Dissemination_July_2009.zip","c:\\NPPES.zip");
//string file = "C:\\NPPES.csv";
Unzipfile("c:\\NPPES.zip", "c:\\NPPES.csv");
MessageBox.Show("Download complete.Select the file to Import data");
}
Solução
Se por "loop através do link" você quer dizer gerar um link correto, você pode fazer isso:
string curr_month = DateTime.Now.ToString("MMMM_yyyy",
System.Globalization.CultureInfo.GetCultureInfo("en-US").DateTimeFormat);
string link = "http://nppesdata.cms.hhs.gov/NPPES_Data_Dissemination_"
+ curr_month
+ ".zip";
para verificar se um download sucedido, pegar o WebException
:
System.Net.WebClient we = new System.Net.WebClient();
try
{
we.DownloadFile("", "");
}
catch (System.Net.WebException wex)
{
//failed!
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow