Sto scrivendo un programma che deve scaricare un file .exe
da un sito Web e quindi salvarlo sul disco rigido. Il .exe
è memorizzato sul mio sito ed è URL è la seguente (che non è il vero uri solo quello che ho fatto per lo scopo di questa domanda):Come utilizzare HttpWebRequest/Response per scaricare un file binario (.exe) da un server Web?
http://www.mysite.com/calc.exe
Dopo molte ricerche sul Web e armeggiando attraverso esempi qui è la codice sono venuto in mente finora:
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(http://www.mysite.com/calc.exe);
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
Stream responseStream = webResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream);
string s = streamReader.ReadToEnd();
Come potete vedere sto usando la classe StreamReader
per leggere i dati. Dopo aver chiamato ReadToEnd
il lettore di stream contiene il contenuto (binario) del mio .exe? Posso semplicemente scrivere il contenuto dello StreamReader
in un file (denominato calc.exe) e avrò scaricato con successo l'exe?
Mi chiedo il motivo per cui ReadToEnd
restituisce una stringa. Nel mio caso questa stringa sarebbe il contenuto binario di calc.exe?
Grazie mille! Verificherà WebClient.DownloadFile adesso! –
WebClient DownloadFile ha funzionato ed erano solo 3 righe di codice! –