Oppure

Loading
19/06/10 9:24
Federico1976
Ciao Sto facendo un programmino per il download di alcune pagine web Scaricando da un flusso di dati Il problema e che la proprieta ContentLength mi restituisce -1
io avrei bisogno di vedere la dimensione totale di byte da scaricare per visualizzare in una ProgressBar l'avanzamente come posso aggirare L'ostacolo ?

Grazie!
aaa
19/06/10 9:35
Il Totem
Mi spiace ma l'header ContentLength non è obbligatorio, perciò non tutte le risposte lo contengono: nel tuo caso la proprietà restituisce -1 perchè non era presente nessun header ti quel tipo nella risposta. A questo non c'è soluzione.
aaa
19/06/10 9:57
Federico1976
:(
Grazie !
Scusa l'insistenza faccio solo per capire non sono molto esperto
Neanche se usassi un Download asincrono gestito con Net.WebClient() ho visto sul tua guida che esiste il metodo DownloadFileAsync otterei quello che Voglio?
Magari scaricando il la pagina come un file se possibile

Ultima modifica effettuata da Federico1976 19/06/10 11:36
aaa
20/06/10 10:08
Il Totem
Sì, puoi usarlo, anche se io terrei comunque l'HttpWebRequest, in quanto più maneggevole. In realtà mi chiedo come faccia il WebClient a sapere sempre la dimensione dei dati in arrivo. Ossia, non sono sicuro che nell'evento ProgressChanged la proprietà e.TotalBytes (o qualcosa di simile) sia sempre coerente, ma non mi è mai capitato di ottenere valori strani.
aaa
20/06/10 11:12
Federico1976
HttpWebRequest Piu maneggievole Sono daccordo
WebClient Forse ipotizzo che a scapito delle prestazioni lancia l'evento dopo aver effetivamente scaricato. che non so se torna col fatto che la proprieta e.TotalBytes non sia sempre coerente piecerebbe capire anche a me :heehee:

Grazie 1000
Ultima modifica effettuata da Federico1976 20/06/10 11:38
aaa
20/06/10 11:48
Il Totem
Postato originariamente da Federico1976:

HttpWebRequest Piu maneggievole Sono daccordo
WebClient Forse ipotizzo che a scapito delle prestazioni lancia l'evento dopo aver effetivamente scaricato. che non so se torna col fatto che la proprieta e.TotalBytes non sia sempre coerente piecerebbe capire anche a me :heehee:

Grazie 1000


No, ProgressChanged è un evento generato da un thread a sua volta creato da un metodo asincrono, quindi non può avere scaricato tutto.
aaa
20/06/10 12:03
Federico1976
A allora comincio a capire le tue perplessita :rofl:
Forse, mi viene anche un'altra considerazione, che possa considerare la grandezza del file.
Che Magari nel server quello viene restituito, sto parlando un po sensa sapere ma provo.
aaa
21/06/10 9:24
Federico1976
Ciao aggiornamento ho provato ad usare Net.WebClient() il metodo DownloadFileAsync
con lo stesso risultato della proprietà ContentLength mi restituisce sempre -1
mi sa mi ripiegherò su un'altra soluzione un pò grezza.
Grazie!
aaa