Problemas para salvar um arquivo baixado na área de trabalho no WPF C #

Quando eu uso:

  WebClient web = new WebClient();
  web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChangedWeb);
  web.DownloadFileAsync(new Uri("http://www.website.com/Webs.exe"),
                            Environment.SpecialFolder.Desktop + @"\Webs.exe");

... Nada downloads.

Mas se eu mudar para "

  WebClient web = new WebClient();
  web.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChangedWeb);
  web.DownloadFileAsync(new Uri("http://www.website.com/Webs.exe"),
                            Environment.SpecialFolder.Desktop + "Webs.exe");

Então ele faz o download, mas eu recebo um arquivo chamado "desktopWebs.exe". Então, como posso salvar um arquivo na área de trabalho?

obrigado

0
adicionado editado
Visualizações: 1

2 Respostas

O que você quer é isso ...

Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\Webs.exe";

Caso contrário, você está apenas tocando na palavra desktop em vez do caminho real.

0
adicionado
Ah, vejo como isso funciona agora. Obrigado!
adicionado o autor JimDel, fonte

Você pode usar o Path.Combine

web.DownloadFileAsync(new Uri("http://www.website.com/Webs.exe"),
                        Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "Webs.exe"));

Esta função irá inserir automaticamente (ou remover) barras, bem como adaptar-se a qualquer sistema de arquivos sendo usado

Você também deve considerar o uso de Environment.SpecialFolder.DesktopDirectory, isso aponta para o local físico real da pasta da área de trabalho no disco.

0
adicionado
A menos que eu esteja fazendo algo errado, isso não funciona. talvez porque estou usando o WPF?
adicionado o autor JimDel, fonte
SpecialFolder.DesktopDirectory não funciona para mim também. Eu recebo 'System.Windows.Shapes.Path' não contém uma definição para 'combinar'
adicionado o autor JimDel, fonte
Isso funcionará somente se eu usar a solução KDiTraglia. Obrigado pela ajuda.
adicionado o autor JimDel, fonte
SpecialFolder.DesktopDirectory?
adicionado o autor jimmyjambles, fonte
essa é a classe Path errada, que é aquela usada para desenhar, eu quis dizer System.IO.Path
adicionado o autor jimmyjambles, fonte