Problemas para guardar un archivo descargado en el escritorio en WPF C #

Cuando 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 de descargas.

Pero si lo cambio a "

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

Luego descarga, pero obtengo un archivo llamado "desktopWebs.exe". Entonces, ¿cómo puedo guardar un archivo en el escritorio?

Gracias

0

2 Respuestas

Lo que quieres es esto ...

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

De lo contrario, solo está haciendo tachuelas en el escritorio de Word en lugar de en la ruta real.

0
agregado
Ahh, veo cómo funciona eso ahora. ¡Gracias!
agregado el autor JimDel, fuente

Puedes usar Path.Combine

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

Esta función insertará (o eliminará) barras automáticamente y se adaptará a cualquier sistema de archivos que se utilice

También debería considerar usar Environment.SpecialFolder.DesktopDirectory, esto apunta a la ubicación física real de la carpeta del escritorio en el disco.

0
agregado
A menos que esté haciendo algo mal, eso no funciona. tal vez porque estoy usando WPF?
agregado el autor JimDel, fuente
SpecialFolder.DesktopDirectory tampoco funciona para mí. Obtengo 'System.Windows.Shapes.Path' no contiene una definición para 'Combine'
agregado el autor JimDel, fuente
Eso funcionará solo si uso la solución KDiTraglia. Gracias por tu ayuda.
agregado el autor JimDel, fuente
SpecialFolder.DesktopDirectory?
agregado el autor jimmyjambles, fuente
esa es la clase de ruta incorrecta, que es la que se usa para dibujar, me refería a System.IO.Path
agregado el autor jimmyjambles, fuente