Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Inet - Scaricare File Da FTP
Forum - Visual Basic 6 - Inet - Scaricare File Da FTP

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 1:00
Giovedì, 01/01/1970
Ciao a tutti ragazzi... avrei un problemone...

praticamente ho fatto un programma che ha un autoupdate tramite ftp...

Il download... è stato fatto... i file li scarica...

solo che siccome, il progr cercherà aggiornamenti ogni 30 minuti, i file obsoleti vengono eliminati automaticamente... quindi se cerca Update.exe e li non c'è, non lo scarica... ma non da errori anche se il file non c'è... ora veniamo al punto...

ho fatto dopo in modo da controllare, se il file sia stato davvero scaricato (verificandone l'esistenza) cosi nel caso di errore di download lo riscarica oppure se non c'è fa altri 3 tentativi e poi passa avanti.. il codice da me usato per verificare l'esistenza è questo:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. If Dir (App.Path & "\Update.exe")= "" then
  3. msgbox "non esiste"
  4. else
  5. msgbox "Esiste"



queste message box naturalmente sono banali, sono solo per fare vedere il codice...

ora ecco il probl... il file (che come ho detto non c'è nel FTP) secondo questo codice esiste!!!!

cioè scarica il file (inesistente) e quando ne controlla l'esistenza (stessa cartella del progr) Dice che esiste.. quando naturalmente non c'è e non c sarà mai nulla!!! Sapete dirmi perchè? è forse il codice che sbaglio?

PM Quote
Avatar
M@d_Hacker (Ex-Member)
Expert


Messaggi: 254
Iscritto: 25/02/2008

Segnala al moderatore
Postato alle 0:07
Sabato, 17/05/2008
X verificare l'esistenza dei file prova questo codice...

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Command1_Click()
  2. Dim p As String
  3. On Error Resume Next
  4. p = App.Path & "\Update.exe"
  5. check = Dir(p)
  6. If Err <> 0 Then
  7. MsgBox "Il nome del file non è corretto."
  8. Exit Sub
  9. End If
  10. If (check <> "") Then
  11. ret = MsgBox("IL FILE " & p & "  ESISTE", vbInformation)
  12. Else
  13. MsgBox "Il File non esiste!!", vbCritical
  14. End If
  15. End Sub


Ultima modifica effettuata da M@d_Hacker il 17/05/2008 alle 0:07
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 0:15
Sabato, 17/05/2008
Ma tu sei sicuro che quando esegue la

Dir

il file non ci sia?

Mi sa che il file viene comunque creato dalla parte di codice che lo scarica da FTP (magari vuoto) e la Dir giustamente ti dice che esiste ...

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 18:04
Sabato, 17/05/2008
windows ed Explorer non mostrano niente nella cartella...

provo col codice di Mad...

Ma nel caso avesse lo stesso problema.. come lo risolvo?


Grazie mille!


UPDATE:

Niente da fare... dice che c'è.. a questo punto direi che non è un errore di codice.. ma che come ha detto Gantonio, creerà un file... il problema è... come lo crea se non c'è!? O_o... e la domanda è la stessa... Come si risolve sto probl?

Ultima modifica effettuata da il 17/05/2008 alle 18:16
PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 20:13
Sabato, 17/05/2008
prova a farli aprire il file che trova col dir per vedere se e` vuoto o similare.
seondo me ha ragione BigG ti crea un bellissimo file vuoto.
soprattutto se usi intet.openurl(...blabla...)

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:22
Sabato, 17/05/2008
Beh ecco è un discorso lungo:

Ecco il codice che ho usato

Codice sorgente - presumibilmente VB.NET

  1. If Inet1.StillExecuting Then Exit Sub
  2.  
  3. 'On Error GoTo Error
  4. ResumeDownload:
  5. Inet1.Execute "", "GET " & "Update.exe" & " " & "Update.exe"
  6. DoEvents
  7.  
  8. If Dir(App.Path & "\Update.exe") = "" Then
  9. MsgBox "miao" 'GoTo ResumeDownload
  10. Else
  11. MsgBox "yeah"
  12. End If
  13.    
  14. Error:
  15. If Inet1.StillExecuting Then Exit Sub
  16.  
  17.  
  18. On Error GoTo Error2
  19. ResumeDownload2:
  20. Inet1.Execute "", "GET " & "IP.txt" & " " & "IP.txt"
  21. DoEvents
  22.  
  23. If Dir(App.Path & "\IP.txt") = "" Then
  24. GoTo ResumeDownload2
  25. Else
  26. Pause 3000
  27. Open App.Path & "\IP.txt" For Input As #1
  28. While Not EOF(1)
  29. Text2.Text = Input(LOF(1), #1)
  30. Wend
  31. Close #1
  32. Y = Text2.Text
  33.  
  34. Z = Split(Y, ":")
  35. Text2.Text = Z(0)
  36. Text3.Text = Z(1)
  37.  
  38. TCP.Close
  39. Command1_Click
  40. End If
  41.  
  42. DoEvents
  43.  
  44. Error2:
  45.  
  46. End Sub



Io qui ho pensato una cosa e cioè:

Se sul server il file non c'è.. andrà in errore...

e ho messo infatti prima del download di "update.exe" un "on error goto error" che andrebbe a saltare il download, e passa al secondo file da scaricare... "IP.txt" e anche li ho messo "on error goto error2" e porta alla fine della sub
solo che l'errore non c'è stato! quindi non so + cosa inventarmi...

non è che potete darmi un idea per avere lo stesso risultato che ho appena spiegato(spero abbiate capito :S)??

Grazie mille di tutto!

:D

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 0:04
Domenica, 18/05/2008
in questo modo ti dara` al 100% l'errore.
infatti il file dovrebbe crearlo lo stesso vuoto ma esistente
anche se non mi capacito perche` non te lo becca explorer...

Ultima modifica effettuata da P4p3r0g4 il 18/05/2008 alle 0:05
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 0:24
Domenica, 18/05/2008
intendi nel codice che ho scritto?

non da alcun errore :-|

PM Quote
Avatar
M@d_Hacker (Ex-Member)
Expert


Messaggi: 254
Iscritto: 25/02/2008

Segnala al moderatore
Postato alle 0:46
Domenica, 18/05/2008
Prova a togliere gli "On Error Goto" dal codice x vedere se fa errori...

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo