Array
(
)

Baixar arquivo de Site Direto no Csharp com windowsforms

Alexssandrolima
   - 17 fev 2014

Bom dia a todos.
Estou com dificuldade em baixar arquivo direto no windowsforms do Csharp
segue o codigo
#Código

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Net;

namespace AlexSystemsBackup.Frms
{
    public partial class FrmDownloadsFile : Form
    {

        string  sourcePath = Environment.CurrentDirectory + "\",
                StrSiteDonloads = "http://the.earth.li/~sgtatham/putty/latest/x86/pscp.exe", 
                StrArquivoSalvar = "pscp.exe";

        public FrmDownloadsFile()
        {
            InitializeComponent();
        }

        private void FrmDownloadsFile_Load(object sender, EventArgs e)
        {
            try
            {
                string Strarquivobaixado = sourcePath + StrArquivoSalvar;
                MessageBox.Show("baixando arquivo " + StrSiteDonloads + " -> " + Strarquivobaixado);

                WebClient webClient = new WebClient();
                webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completo);
                webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressoFeito);
                webClient.DownloadFileAsync(new Uri(StrSiteDonloads), Strarquivobaixado);
            }
            catch (Exception error)
            {
                MessageBox.Show("Error ao baixar arquivo -> " + error);
            }
        }
        private void ProgressoFeito(object sender, DownloadProgressChangedEventArgs e)
        {
            progressBar1.Value = e.ProgressPercentage;
        }

        private void Completo(object sender, AsyncCompletedEventArgs e)
        {
            MessageBox.Show("Download efetuado!");
        }

    }
}

segue a mensagem do que vai fazer.
Mensagem que vai executar o arquivo. (Clique na imagem para abrir em uma nova janela)
mensagem de erro rentornado pelo tray
mensagem retornado pelo try (Clique na imagem para abrir em uma nova janela)
se alguem poder mim ajudar. nao estou conseguindo verificar onde é o erro.
obrigado.

Joel Rodrigues
   - 19 fev 2014

No catch, comece trocando o conteúdo da mensagem para error.Message, para que a mensagem fique mais clara:
#Código

catch (Exception error)
{
                MessageBox.Show("Error ao baixar arquivo -> " + error.Message);
}

0
|
0

Alexssandrolima
   - 19 fev 2014


Citação:
No catch, comece trocando o conteúdo da mensagem para error.Message, para que a mensagem fique mais clara:
#Código

catch (Exception error)
{
                MessageBox.Show("Error ao baixar arquivo -> " + error.Message);
}


ok. testado, mensagem que apareceu, "Error ao baixar arquivo -> o sistema de configuração falhou ao inicializar "

pesquisei o codigo e nao encontrei onde esta esta configuração de inicialização. se você poder mim ajudar.

0
|
0

Joel Rodrigues
   - 19 fev 2014

Coloque um breakpoint na primeira linha dentro do trye verifique em qual linha ocorre o erro.

0
|
0

Murilo Teixeira
   - 19 fev 2014

Tente dar uma olhada no seu App.Config.

Procure se tem uma seção chamada configStrings, ela pode estar causando esse erro.

Se puder postar o conteúdo do arquivo, somente lembre-se de remover qualquer string de conexão de banco ou senha.

Abraços,
Murilo

0
|
0

Alexssandrolima
   - 20 fev 2014


Citação:
Tente dar uma olhada no seu App.Config.

Procure se tem uma seção chamada configStrings, ela pode estar causando esse erro.

Se puder postar o conteúdo do arquivo, somente lembre-se de remover qualquer string de conexão de banco ou senha.

Abraços,
Murilo


ola boa noite. meu app.config esta criado mais nao estou usando ainda. segue abaixo.
#Código

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configStrings>
    <add name="HomePasta"
      configStrings="syspaf" />
    <add name="HomedriverPenA"
      configStrings="F" />
    <add name="HomedriverPenB"
      configStrings="D" />
  </configStrings>
</configuration>


pode ser que ajude.

0
|
0

Alexssandrolima
   - 20 fev 2014


Citação:
Coloque um breakpoint na primeira linha dentro do trye verifique em qual linha ocorre o erro.


ola boa noite joel ,

agora vc mim pegou. como colocar este beakpoint. ainda estou aprendendo o c#, tem muitos codigos que ainda nao sei pelo nome. mais vou pesquizar.

obrigado pela ajuda.

0
|
0

Joel Rodrigues
   - 21 fev 2014

Para que tem essa seção no app.config, se não está em uso?
Comente ou remova o seguinte bloco de código e teste sua aplicação novamenet:
#Código

<configStrings>
    <add name="HomePasta"
      configStrings="syspaf" />
    <add name="HomedriverPenA"
      configStrings="F" />
    <add name="HomedriverPenB"
      configStrings="D" />
</configStrings>

0
|
0

Joel Rodrigues
   - 21 fev 2014

Se não me engano, essa seção é inválida, se não está usando, remova.

0
|
0

Murilo Teixeira
   - 21 fev 2014

Exatamente conforme o Joel disse, a seção que você colocou no App.Config está inválida, remova ela e tente novamente.

Caso deseje utilizar alguma chave, coloque elas dentro do <appSettings>, da seguinte forma:

#Código

<appSettings>
		<add key="HomePasta" value="syspaf" />
		<add key="HomedriverPenA" value="F" />
		<add key="HomedriverPenB" value="D" />
	</appSettings>

0
|
0

Murilo Teixeira
   - 21 fev 2014

Lembrando que o <appSettings> fica dentro do <configuration>

#Código

<configuration>
	<appSettings>

	</appSettings>
</configuration>

0
|
0

Alexssandrolima
   - 21 fev 2014


Citação:
Se não me engano, essa seção é inválida, se não está usando, remova.


joel deu certo agora. esta baixando o arquivo. na verdade era este app.config que eu fiz errado. e nao estava usando.

aqui esta o breakpoint que fiz.

breakpoing (Clique na imagem para abrir em uma nova janela)

0
|
0

Alexssandrolima
   - 21 fev 2014


Citação:
Lembrando que o <appSettings> fica dentro do <configuration>

#Código

<configuration>
	<appSettings>

	</appSettings>
</configuration>


Murilo Deixei a configuração do jeito que você pediu. porque quando meu codigo estiver maior vou poder usar no futuro.

obrigado pela ajuda. ficou funcionando que é uma beleza.

obrigado.

0
|
0