Download File

mercoledì 12 novembre 2008 - 13.05

schumy2000 Profilo | Junior Member

Salve a tutti
avrei la necessità, per il mio programma, di scaricare un file da un PC ben preciso con una precisa path.
ora ho visto in giro che esiste la libreria System.Net con l'oggetto Webclient e il metodo DownloadFile ( System.Net.WebClient.DownloadFile(string Uri, string path) ) che è fantastico, bellissimo senonché non è altrettanto "apprezzato" dalla piattaforma su cui programmo ovvero la Compact Framework(lavoro su Pocket PC) poiché l'oggetto WebClient non è contemplato nella libreria System.Net .

C'è qualcosa di simile alla WebClient, presente e compatibile con la Compact Framework, che mi permetta di fare la stessa cosa?

Grazie per ogni risposta/consiglio.
Ciao.
-------------------------------------------------------------------------------------------------------------
Talvolta un pensiero mi annebbia l'Io: sono pazzi gli altri o sono pazzo io?
A. Einstein

0v3rCl0ck Profilo | Guru

>Salve a tutti

Ciao

>avrei la necessità, per il mio programma, di scaricare un file
>da un PC ben preciso con una precisa path.
>ora ho visto in giro che esiste la libreria System.Net con l'oggetto
>Webclient e il metodo DownloadFile ( System.Net.WebClient.DownloadFile(string
>Uri, string path) ) che è fantastico, bellissimo senonché non
>è altrettanto "apprezzato" dalla piattaforma su cui programmo
>ovvero la Compact Framework(lavoro su Pocket PC) poiché l'oggetto
>WebClient non è contemplato nella libreria System.Net .
>
>C'è qualcosa di simile alla WebClient, presente e compatibile
>con la Compact Framework, che mi permetta di fare la stessa cosa?

Che compact framework stai utilizzando 1, 2 o 3.5? E su quale architettura è installato (ARM....)?

>
>Grazie per ogni risposta/consiglio.
>Ciao.

Enjoy It


- Michael -
http://blogs.dotnethell.it/Regulator/

0v3rCl0ck Profilo | Guru

Decompilando il compact framework ho visto che la classe WebClient non è presente, quindi dovresti utilizzare la classe System.Net.HttpWebRequest. Dopo pranzo ti do una mano per fare la chiamata con un WebRequest.
- Michael -
http://blogs.dotnethell.it/Regulator/

schumy2000 Profilo | Junior Member

si l'architettura è ARM e la .NET compact Framework è la 2.0....grazie
-------------------------------------------------------------------------------------------------------------
Talvolta un pensiero mi annebbia l'Io: sono pazzi gli altri o sono pazzo io?
A. Einstein

schumy2000 Profilo | Junior Member

ammazza mangiata.....
-------------------------------------------------------------------------------------------------------------
Talvolta un pensiero mi annebbia l'Io: sono pazzi gli altri o sono pazzo io?
A. Einstein

0v3rCl0ck Profilo | Guru

Si scusami, ma oltre a mangiare sono un pochetto impegnato a lavoro

arrivo vè....


- Michael -
http://blogs.dotnethell.it/Regulator/

0v3rCl0ck Profilo | Guru

Eccoti un esempio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Questo è solo un esempio e scarica il logo di DotNetHell in C:\newlogo3.png
Ovviamente il path di destinazione dell'immagine dovrà essere sostituito con quello corretto per il pocket pc.

Questa è un po' di documentazione:
http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest_members.aspx
http://msdn.microsoft.com/en-us/library/system.net.httpwebresponse_members.aspx

Enjoy It

- Michael -
http://blogs.dotnethell.it/Regulator/

schumy2000 Profilo | Junior Member

piccola precisazione nell' esempio devi importare anche la System.Net
Grazie per l'aiuto alla prox.
Ciao.
-------------------------------------------------------------------------------------------------------------
Talvolta un pensiero mi annebbia l'Io: sono pazzi gli altri o sono pazzo io?
A. Einstein

0v3rCl0ck Profilo | Guru

>piccola precisazione nell' esempio devi importare anche la System.Net

hehe ho sbagliato il copia e incolla

>Grazie per l'aiuto alla prox.
>Ciao.

Prego, alla prossima

P.S.: accetta la risposta, che chiudiamo il thread.


- Michael -
http://blogs.dotnethell.it/Regulator/

schumy2000 Profilo | Junior Member

ultimissima cosa così accetto e chiudiamo il thread.
Tu ne codice hai usato:

byte[] read = new byte[256];

il che per un immagine è giusto usare pochi byte come questi ma nel mio caso che devo scaricare file di grandezza minima 97Kbyte
non sarebbe meglio scrivere:

byte[] read = new byte[65536];

così da aumentare(credo) la capacità di memorizzazione del flusso byte?

Ciao.
-------------------------------------------------------------------------------------------------------------
Talvolta un pensiero mi annebbia l'Io: sono pazzi gli altri o sono pazzo io?
A. Einstein

0v3rCl0ck Profilo | Guru

>ultimissima cosa così accetto e chiudiamo il thread.
>Tu ne codice hai usato:
>
>byte[] read = new byte[256];
>
>il che per un immagine è giusto usare pochi byte come questi
>ma nel mio caso che devo scaricare file di grandezza minima 97Kbyte
>non sarebbe meglio scrivere:
>
>byte[] read = new byte[65536];
>
>così da aumentare(credo) la capacità di memorizzazione del flusso
>byte?

Si, è corretto quello che dici, infatti è una scelta che deve fare il programmatore in base alle sue esigenze. Sapendo che più si allarga il buffer e più ha probabilità di fare solo una lettura, però istanziando più memoria che poi magari non viene mai utilizzata. Invece se si instanzia un buffer piccolo, si spreca poca memoria, ma se lo stream è grande la velocità cala drasticamente.

>
>Ciao.

Ciao


- Michael -
http://blogs.dotnethell.it/Regulator/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5