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");
             }
Foi útil?

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
scroll top