Download resume

Stato
Discussione chiusa ad ulteriori risposte.

D_fool

Utente Silver
11 Novembre 2008
4
2
0
59
salve gente,avrei una domanda da porvi,stavo programmando un semplice downloader,tutto ok,tuttavia vorrei sapere come riprendere un download da un determinato punto nel caso per qualche imprevisto esso venga interrotto,es. download al 90%,spengo il pc,poi quando posso riprendo dal 90%,come posso fare?
per caso devo utilizzare un iterazione affinchè le dimensioni del file remoto,e quelle del file locale coincidano? ma come dire al programma di riprendere dal punto interrotto? attendo risposte

grazie
 
Beh io so che io downloader mettono i dati scaricati in un file con un estensione specifica (esempio .part o .temp) e poi, una volta che il download è finito, creano il file scaricato leggendo i dati dal file temporaneo e riscrivendoli nel file con nome ed estensione giusta cancellando alla fine il file .part. Se il file .part non è stato cancellato vuol dire che il download è stato interrotto e con l'iterazione che hai detto riparti.
 
si,questo l ho notato,utilizzo flash get,che ha come estensione dei file non completati .jc!,e concettualmente ho capito come funziona,tuttavia ho problemi nella pratica :/,grazie ugualmente per la risposta =)
 
di solito i protocolli hanno un comando specifico per richiedere un range di byte (cioè da dove partire a dove arrivare)....
il protocollo http 1.1 per esempio ha
Codice:
Range: bytes=X-Y
dove X è il primo byte da scaricare, e Y l'ultimo... se ometti Y
Codice:
Range: bytes=X-
, scarica da X fino alla fine del file
 
ovvero legge un tot di byte alla volta,sino al completamento del file....ok,sin qui ci sono...ma come dire al programma di salvare il file un po per volta,ed in caso di interruzione,riprendere il download anzichè ricominciarlo?
 
beh quando fai una richiesta tipo http (con socket, ecc.) di solito i programmi lo salvano in un buffer in memoria.... quindi a te basta scrivere questo byte su file, considerando che sai il byte di partenza e quello finale (se lo ometti per esempio il server http ti dice il byte finale)....
di solito si crea un file delle dimensioni finale e dopo un tot di byte scaricati, quindi presenti nel buffer, si scrive su file....

se scarichi i pezzi contemporanemante, devi stare attento ad accedere al file 1 alla volta....
 
mm ti ringrazio molto del tuo aiuto,proverò in serata a combinare qualcosa di utile,grazie ancora =)
 
Stato
Discussione chiusa ad ulteriori risposte.