Italian FTP Command

moore_it

Well-Known Member
Licensed User
Longtime User
Ciao a tutti,

ho la necessità di inviare ad un server FTP i comando RNFR e RNTO per spostare un o più file da una cartella del server FTP ad un'altra.
la cosa funziona ma non per tutti i file qualcuno non viene spostato.

Qualcuno ha avuto lo stesso problema ?

Grazie mille
 

moore_it

Well-Known Member
Licensed User
Longtime User
Ti rispondo subito, no sono tutti uguali !
Infatti se poi provo a rifare la stessa operazione me ne scarica magari ancora un paio e se continuo alla fine li fa tutti.

B4X:
If cb.Checked Then
       ' creo i path per spostare i file 
       Dim remotepath As String = m.Get("d05")&"OUT/"&Globals.USER.Get("w01")&"/"&o(1)
       Dim remotehstpath As String = m.Get("d05")&"OUT/"&Globals.USER.Get("w01")&"/HST/"&o(1)
        ' scarico i dati
        Dim sf As Object = FTP.DownloadFile(remotepath,True,localpath,o(1))
        Wait For (sf) FTPLIST_DownloadCompleted (ServerPath As String, Success As Boolean)
         If Success Then
                ' importo il file e lo cancello 
                ImportToDatabase(o(1))
                ' scaricato correttamente sposto
                FTP.SendCommand("RNFR",remotepath)
                Dim sf As Object = FTP.SendCommand("RNTO",remotehstpath)
                wait for (sf)  FTPLIST_CommandCompleted (Command As String, Success As Boolean, ReplyCode As Int, ReplyString As String)
                 If Success Then
                        MB00.SetMessage(fx.Colors.rgb(0,150,0),"File "&o(1)&" scaricato correttamente !",Chr(0xF071),True)
                 End If
         End If        
End If
 

sirjo66

Well-Known Member
Licensed User
Longtime User
ma tra RNFR e RNTO non devi fare anche lì un wait for ??
 

moore_it

Well-Known Member
Licensed User
Longtime User
i file che non vengono spostati mi danno questo errore anche se i comandi sono dati in sequenza

RNFR
RNTO

RNTO false 503 È necessario RNFR prima di RNTO

Che cavolo potrebbe essere ????
 

moore_it

Well-Known Member
Licensed User
Longtime User
Peso di avercela fatta !

B4X:
Dim FTPDWN As FTP
                        FTPDWN.Initialize("FTPDWN",m.Get("d01"),m.get("d02"),m.Get("d03"),m.Get("d04"))
                        FTPDWN.PassiveMode = True
                        Dim sf As Object = FTPDWN.DownloadFile(remotepath,False,localpath,remotefile)
                        wait for (sf) FTPDWN_DownloadCompleted (ServerPath As String, Success As Boolean)
                        If Success Then
                            Log("download "&remotefile)
                            ' importo il file e lo cancello
                            ImportToDatabase(remotefile)
                            Log("importato "&remotefile)
                            ' scaricato correttamente sposto
                            Dim WO As Object = FTPDWN.SendCommand("RNFR",remotepath)
                            wait for (WO) FTPDWN_CommandCompleted (Command As String, Success As Boolean, ReplyCode As Int, ReplyString As String)
                            Dim WO As Object = FTPDWN.SendCommand("RNTO",remotehstpath)
                            wait for (WO) FTPDWN_CommandCompleted (Command As String, Success As Boolean, ReplyCode As Int, ReplyString As String)
                            Log("ridenominato "&remotefile)
                            MB00.SetMessage(fx.Colors.rgb(0,150,0),"File "&remotefile&" scaricato correttamente !",Chr(0xF071),True)
                        Else
                            MB00.SetMessage(fx.Colors.rgb(150,0,0),LastException.Message,Chr(0xF071),False)
                            Log(LastException.Message)
                        End If
                        FTPDWN.Close
 

moore_it

Well-Known Member
Licensed User
Longtime User
Ciao LucaMs, non credo non essendo una procedura che non contiene sleep o altro ...
 

moore_it

Well-Known Member
Licensed User
Longtime User
No, il download è stato fatto e ho giustamente atteso che abbia finito poi importo il file nel database e poi sposto il file nell'ftp per storicizzarlo.
Quello che no riuscivo a fare era la storicizzazione che faceva a modo suo.
Poi ho capito che arrivava prima il comando RNTO del comando RNFR
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…