Italian b4j ftp downloadprogress

giannimaione

Well-Known Member
Licensed User
Longtime User
in un progetto B4J utilizzo la libreria jNet (version 1.10)
riesco ad eseguire il download in modo corretto e senza problemi, ma nelle seguente routine
Sub FTP_DownloadProgress (ServerPath As String, TotalDownloaded As Long, Total As Long)
la variabile Total ritorna sempre -1
è un BUG o non ho capito il significato di questa variabile ?

ho eseguito il test scaricando file sia da server tipo "linux" che "windows", ma nulla cambia
 

LucaMs

Expert
Licensed User
Longtime User
Dato questo esempio nel tutorial di Erel:
B4X:
Sub FTP_DownloadProgress (ServerPath As String, TotalDownloaded As Long, Total As Long)
    Dim s As String
    s = "Downloaded " & Round(TotalDownloaded / 1000) & "KB"
    If Total > 0 Then s = s & " out of " & Round(Total / 1000) & "KB"
    Log(s)
End Sub

TotalDownloaded è il numero di byte scaricati attualmente
Total è il numero totale di byte da scaricare, ovvero le dimensioni del file da scaricare. Se è -1 significa che, per qualche motivo che per il momento * :) non conosco, questo dato non è disponibile.

* P.S.
Pere che il pompelmo faccia mele...
no, volevo dire, PARE che quel dato, chiamato ContentLength, non venga fornito se viene impostato il modo passivo.
Se si vuole continuare col modo passivo, l'unica soluzione è ricavare la lunghezza del file tramite il comando FTP List:
B4X:
FTP.List(mFTPServerUserFolder)

Sub FTP_ListCompleted (ServerPath As String, Success As Boolean, Folders() As FTPEntry, Files() As FTPEntry)
    If Success Then
        For Each f As FTPEntry In Files
            Log(f.Name & ":  " & NumberFormat2(f.Size, 1, 0, 0, True) & " Bytes")
        Next
    Else
        Log(LastException.Message)
    End If
End Sub
 
Last edited:
Top