Oppure

Loading
04/01/11 12:54
davidebrescia
Salve a tutti, ho realizzato un semplice sistema di Liveupdate e devo dire che tutto sommato nella sua semplicità funziona e raggiunge lo scopo prefissato.
Attualmente funziona in questo modo, tutte le volte che l'utente clicca su LIVEUPDATE il sistema scarica due files specifici da remoto e sostituendoli a quelli in uso sul pc dell'utente, in tal modo vengono aggiornati sempre anche quando in realtà non vi è stata alcuna modifica sul lato server.Ora mi piacerebbe invece fare in modo di controllare le dimensioni del file su server in modo da verificare se queste dimensioni differiscono dal file presente sulla macchina utente e in tal caso scaricare l'aggiornamento. Esempio ho un file chiamato programma.exe dimensioni su server ftp 100 Kb dimensioni su macchina utente 100 Kb, in questo caso i due file messi a confronto sono identici e il liveupdate non deve eseguire alcun aggiornamento, nel caso in cui invece il file programma.exe presente su ftp fosse 200 Kb in questo caso il liveupdate dopo averlo confrontato con il file sulla macchina utente rimasto a 100 Kb dovrebbe accorgersi delle variate dimensioni e quindi provvedere a scaricare l'aggiornamento...quindi in buona sostanza mi serve un algoritmo che controlla le dimensioni del file su server ftp e le confronti con il file su macchina utente e da qui esegua l'aggiornamento oppure no...qualcuno di voi ha qualche suggerimento o idea da propormi? Grazie in anticipo...:)
aaa
04/01/11 13:01
poeo85
Allora soluzione uno..
Funzione FileLen
Restituisce un valoreLong che specifica la lunghezza di un file espressa in byte.

Sintassi

FileLen(nomepercorso)

L'argomento obbligatorio nomepercorso è un'espressione stringa che specifica il nome del file. Può includere la directory o cartella e l'unità.

Osservazioni

Se il file specificato è aperto nel momento in cui viene chiamata la funzione FileLen il valore restituito rappresenterà la dimensione del file prima dell'apertura.

Nota Per ottenere la lunghezza di un file aperto, utilizzare la funzione LOF.

fonte msdn


soluzione due...
se ti salvi la versione in un file di testo???sia in locale che sul server e fai solo una lettura all'avvio o alla pressione del bottone?
aaa
04/01/11 13:01
lorenzo
secondo me non puoi basarti sulla dimensione per stabilire se due files sono differenti.

Sarebbe meglio porre nella directory un file(testo, xml) con la versione dei files da scaricare.
Un file similare risiederà anche sul client.

Quando fai l'update, controlli la versione.
aaa
04/01/11 13:18
davidebrescia
Grazie ragazzi per le vostre gentili risposte, in effetti avevo gia fatto tempo fa un sistema di liveupdate che verificava attraverso due file di testo se era presente un aggiornamento oppure no e quindi si comportava di conseguenza, ma mi pareva un sistema poco elegante di programmare, una sorta di trucchetto per aggirare l'ostacolo, ma per fare una cosa piu da "figo" pensavo di verificare direttamente la dimensione del file su ftp e comportarmi di conseguenza per l'aggiornamento..:asd:
aaa
04/01/11 13:21
poeo85
però come ha detto lorenzo non ti puoi basare esclusivamente sulla dimensione del file...
magari se ti fai il file di testo poi potresti salvarti l'ultimo utente che ha fatto l'accesso da quel pc...ecc usi un unico file
poi...

ogniuno ha le proprie esigenze :D
aaa
04/01/11 13:28
delta
secondo me potresti calcolare l'hash del file locale e quello sul server. se uguali, dici all'utente che e' aggiornato, altrimenti scarichi il file hostato sul server. la dimensione temo che non serva proprio a niente, a meno che il file sia modificato solo in scrittura (append), ma e' molto piu' comodo il metodo con l'hash...
aaa
04/01/11 13:28
davidebrescia
Ok ora faccio qualche esperimento..se trovo un sistema..tattico ve lo dico.ciao
aaa
04/01/11 13:45
lorenzo
il sistema del calcolo HASH probabilmente è il migliore e non necessita neanche di un file aggiuntivo di versioning. Te lo consiglio.
aaa