PDA

View Full Version : [Visual Basic 6] - Chiarimento su oggetto INET


lucausa75
28-12-2009, 06:51
Salve ragazzi,
possiedo uno spazio su altervista e tramite l'oggetto INET vorrei provare ad uploadare alcuni file all'interno del mio spazio FTP.

Questa la procedura da me costruita:

Private Sub FileUpload()
Dim host_name As String
Dim LocalFile As String
Screen.MousePointer = vbHourglass
LocalFile = SDir & txtSeriale ' SDir variabile che contiene la directory di sistema del Sistema Operativo
DoEvents
host_name = "music.altervista.org"
If LCase$(Left$(host_name, 6)) <> "ftp://" Then host_name = "ftp://" & host_name
inetFTP.URL = host_name
inetFTP.UserName = "music"
inetFTP.Password = "miosito"
DoEvents
inetFTP.Execute , "Put " & LocalFile & " " & txtSeriale
Screen.MousePointer = vbDefault
End Sub

Il problema è che con questa routine l'pload del file (LocalFile) avviene solo sulla directory principale dello spazio FTP; ma se io volessi uploadarlo all'interno della directory REGISTRAZIONE/SERIALI interna sempre al mio FTP come dovrei fare?

Grazie per l'aiuto che mi darete...

MarcoGG
28-12-2009, 08:36
Trovi un tutorial abbastanza completo qui :
http://www.vbsimple.net/index.htm?/cliserv/clser_03.htm

In particolare vedi l'utilizzo del comando "CD", per effettuare il cambio di cartella di lavoro remota.

lucausa75
28-12-2009, 10:58
Trovi un tutorial abbastanza completo qui :
http://www.vbsimple.net/index.htm?/cliserv/clser_03.htm

In particolare vedi l'utilizzo del comando "CD", per effettuare il cambio di cartella di lavoro remota.

Grazie per il consiglio ma in quel progetto suggeritomi ho trovato pochissimo aiuto.

in breve, se nel mio codice inserisco queste righe di comando:

inetFTP.Execute , "CD /Registrazione" & vbCrLf
While inetFTP.StillExecuting: DoEvents: Wend

inetFTP.Execute , "CD /Seriali Usati" & vbCrLf
While inetFTP.StillExecuting: DoEvents: Wend

il percorso si aggiorna solo a /Registrazione e non passa alla cartella Seriali Usati per cui troverò il mio file su /Registrazione anzichè su /Registrazione/Seriali Usati

Mi aiutate?

Grazie

MarcoGG
28-12-2009, 13:12
Scusa, ma se lo ritrovi in \Registrazione significa che il comando ha funzionato. Non puoi semplicemente passargli il percorso in colpo solo ?

inetFTP.Execute , "CD /Registrazione/Seriali Usati"

wingman87
28-12-2009, 13:20
Secondo me è per via dello spazio nel nome della seconda cartella. Prova a fare l'escape dello spazio (cioè aggiungere un "\" prima dello spazio)

MarcoGG
28-12-2009, 13:32
Secondo me è per via dello spazio nel nome della seconda cartella. Prova a fare l'escape dello spazio (cioè aggiungere un "\" prima dello spazio)

Quoto, sicuramente in questi casi ci si fa un grosso favore non utilizzando nomi e percorsi che contengono spazi.

lucausa75
28-12-2009, 14:11
Secondo me è per via dello spazio nel nome della seconda cartella. Prova a fare l'escape dello spazio (cioè aggiungere un "\" prima dello spazio)

...grazie 1000 per la dritta; ho risolto mettendo un underscore tra Seriali e Usati

inetFTP.Execute , "CD Registrazione/Seriali_Usati/" & vbCrLf
While inetFTP.StillExecuting: DoEvents: Wend

;)