Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Iterrogazione file con VB.net
giovedì 16 ottobre 2003 - 18.14
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
gio 16 ott 2003 - 18:14
Ciao a tutti questo è il mio problema ho fatto un applicazione che scarica un file da internet al link d'esempio www.xxxxx.it/ciccio.zip questo programma scarica questo file lo dezippa e lo installa nella sua directory giusta per fare un upgrade di un software il mio problema sta nel sapere prima di lanciare il download qualìè la data di creazione di questo file in modo da poterla confrontare con quella del hard disk locale e decidere se superiore o no? Su disco locale tipo c:\xxx son già riuscito ad avere informazioni sul file ma su quello remoto non ho la minima idea di come farlo qualcuno ha qualche idea ? penso che sia un bel programmino da far girare a chi ne avvesse bisogno come esempio.
Sicuro di un Vs. aiuto porgo distiti saluti.
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 17 ott 2003 - 09:24
ciao io al momento in vb.net/c# non so come si faccia, ma l'ho fatto in vb6 e penso sia simile.
Quello che devi fare e' farti dare un header dal webserver, che ti dia la data di creazione del file.
io usavo l'ocx inet e facevo una richiesta di header, (non get classica) ma [.Execute , "HEAD"] e poi di tutti mi facevo dare quello che mi serviva con [.GetHeader("Last-modified")] che mi ritonava la data ora del file remoto.
in .net penso che si debba chiedere questo header con la classe webclient.
prova a dare un'occhiata...
ciao
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
ven 17 ott 2003 - 11:08
E' esatto,
la soluzione proposta da teo è corretta. Infatti di solito si fa così si fanno richieste particolari HTTP o FTP facendosi restituire la data di creazione del file o di ultima modifica, dopodichè si confronta e si decide se scaricare o meno senza naturalmente scaricare prima tutto il file.
Io però più che sulla data ti consiglierei di fare il controllo sulla dimensione che è più semplice, anche se non sempre una release successiva è più grande di una precedente, magari potevi fare il controllo se file sul server maggiore di file locale allora scarica.
Anche in questo caso per prendere la dimensione devi operare nello stesso modo.
Ciao
David De Giacomi
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
ven 17 ott 2003 - 12:07
Grazie Teo finalmente sembra che ho trovato la soluzione ma siccome sono alle prime armi mi potresti aiutare o magari se hai già qualche esempio che mi possa chiarire le cose per esempio per quando ho capito mi devo procurare ocx inet che trovo su internet giusto ? Poi passo col importarlo nel mio progetto e quì casca l'asino cosa devo chiedere all'ocx nel codice ? ringrazio chiunque mi stia aiutando in questa impresa Ciao e grazie ancora
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 17 ott 2003 - 15:10
studiero' come fare con la classe webclient al momento non so'...
cmq io ti sconsiglio di importare ocx in .net, per mia filosofia prendo solo dal framework o "derivati", non voglio piu usare com etc...
ti faccio avere qualcosa nei prossimi giorni su questo tread
ciao!
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
ven 17 ott 2003 - 17:14
Ciao e grazie buon week !!!
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
ven 17 ott 2003 - 18:51
ho guardato un attimo e una cosa semplice da fare puo essere usare una webrequest in questo modo:
WebRequest richiesta =HttpWebRequest.Create("http://....miofile.zip");
WebResponse risposta = richiesta.GetResponse();
Console.WriteLine("Ultima modifica : " + res.Headers["Last-Modified"]);
prova cosi!
ciao
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
sab 18 ott 2003 - 11:16
Grazie per la bella soluzione ma è sorto un problemino ho importato msinet in Vb.net ma nell'importazione mi dice che non dispongo della lincenza per utilizzarlo come faccio ? Mi sa che se non trovo un suo sostituto per .net devo progettare il tutto con vb6 se sai qualcosa mi fai sapere grazie ciao
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
sab 18 ott 2003 - 12:05
Ciao mi sa che ho frainteso al posto del ocx devo creare un webclient quindi importare nel mio progetto la classe system.????? e poi devo dichiarare le varie webrequest e webresponse nel seguente modo dim webrequest as ?????? abbi pazienza ma Vb.net mi sta facend passare la voglia quanto era bello VB6 Ciao e Grazie ancora
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
sab 18 ott 2003 - 13:02
Ciao Leandro,
ti rispondo come sul newsgroup.
Quell'ocx era molto limitato e poco efficiente a mio avviso.
Ora con .NET non c'è stata una sostituzione del compoennte ma c'è
un intero namespace di classi che ti permettono di fare con più granualrità
le stesse operazioni, certo ci vuole un po' di conoscenza base dei sockets e
di pratica. I namespaces sono System.Net.Sockets e System.Net.
Documentati sul Framework SDK.
Quindi l'approccio che hai segnalato e che vuoi seguire è perfetto. Devi fare un po' di pratica.
Ciao
David De Giacomi
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
dom 19 ott 2003 - 22:45
Ciao ho seguito il Vs consiglio il codice che ho scritto è il seguente :
Dim richiesta As WebRequest
Dim risposta As WebResponse
richiesta = HttpWebRequest.Create("
http://www.xxxx.it/xxx/xxx.zip"
)
risposta = richiesta.GetResponse()
MsgBox(risposta.Headers, MsgBoxStyle.Critical)
Ma mi da un errore fermandosi alla riga:
risposta= ......
Mi dice che:
Eccezione non gestita di tipo "System.Net.WebException" in system.dll
Informazioni aggiuntive: Connessione sottostante chiusa: Impossibile risolvere il nome remoto..
Cosa mi potete dire su queto errore mi sapete dare un'altro aiutino so che sono una rottura ma fatelo per il bene di vb.net che non riesco proprio a digerire l'ho acquistato maaa... ne sono ancora molto perplesso grazie e ciao
leandro
Profilo
| Newbie
41
messaggi | Data Invio:
lun 20 ott 2003 - 09:28
ciao Ragazzi ci sono riuscito la mia domanda ora è spontanea io sto provando l'eseguibile su un pc con adsl ma se lo devo utilizzare su un pc con un modem devo attivare la connsessione a internet manualmente o dovrebbe almeno avviare la schermatina di accesso remoto da solo ?
Grazie mille per l'aiuto che mi state fornendo ?
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 20 ott 2003 - 19:37
Questo purtroppo non lo so.
Non so se parte automaticamente la finestrella di connessione alla rete.
Cmq se vai su Internet Explorer, menù strumenti->opzioni internet, poi linguetta connessioni e prova ad abilitare la voce: "usa connessione remota se non è disponibile..." forse così ti appare.
Se no devi forzare tu la connessione, e per questo ci sono vari modi, se guardi i Post passati nel forum, puoi vedere come.
ciao
David De Giacomi
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !