PDA

View Full Version : [C#]Sapere quando un file è stato scaricato dal browser


Mattyfog
21-12-2009, 20:27
Ciao a tutti,
tornando a quel mio programmino per guardare e scaricare i video da youtube ho bisogno di una mano. Spiego brevemente la parte del programma che riguarda la domanda: attraverso questo semplice software potete navigare su youtube e dopo aver visto un video potrete scaricarlo. Il problema è che ora vorrei che il software cercasse i video (e questo lo so fare) e che li copiasse dai file temporanei non appena essi fossero stato scaricati dal browser. Sapreste indicarmi qualche cosa che possa fare al caso mio e che mi permetta di capire quando il file è stato scaricato completamente? Io non so proprio da dove partire, forse ci sono funzioni che permettono di capire se il file è aperto da un altro processo o forse ci sono soluzioni migliori. Insomma voi espertoni consigliatemi che metodo usare.
Ricordo che volutamente il programma non può scaricare i video direttamente.
Mi verrebbe anche comodo poter sapere su che file sta lavorando la webbrowser (parlo appunto del fatto che stia salvando video fra i file temporanei).
Alcune informazioni utili:
nel programma si nagiva trami un webbrowser fornito dall'ambiente di sviluppo visual studio (quello classico insomma)
il webbrower si comporta in questo modo: quando voi aprite una pagina di youtube con un video esso lo scarica e nel frattempo inizia a salvarlo aggiornando costantemente il file temporaneo nell'hard disk

Grazieee :)

gugoXX
22-12-2009, 00:16
Prova a dare un occhiata al FileSystemWatcher, per vedere se c'e' un evento che puo' interessarti.

^TiGeRShArK^
22-12-2009, 12:44
No, il FileSystemWatcher non va bene perchè ti avvisa ogni volta che un file viene modificato, ma non hai modo di sapere quando è finita la scrittura su disco.
Io ai tempi se non sbaglio avevo usato un semplice polling confrontando la dimensione del file in due istanti successivi, ma in questo caso non so se è proprio l'ideale come soluzione dato che la latenza da internet è molto + elevata rispetto alla lan.....
Con gli handle non risolverebbe nulla dato che il file resterebbe aperto anche dopo che ha finito di scaricarlo dato che sarà utilizzato dal plugin flash.
Se si conoscesse la dimensione totale in qualche modo si potrebbe semplicemente utilizzare un polling e vedere quando raggiunge quella dimensione, che mi pare la soluzione + pulita.

Mattyfog
22-12-2009, 20:41
già dovrei conoscere la dimensione finale del file perchè altrimenti, se confrontassi la dimensione del file in due momentio diversi, se ci fossero problemi di collegamento con internet avrei problemi..
Provo a dare un'occhiata và :)
Grazie nel caso mi faccio ancora sentire!