Salve a tutti,
ho un problema ad implementare correttamente la libreria Inet di Visual basic 6 per far comunicare la mia applicazione con un server FTP. In pratica devo estrarre la lista di file e cartelle dal server remoto, e per fare questo ho creato una funzione ad hoc, ma questa funzione lavora bene solo se ci sono pochi file nel server remoto (e quindi la lista è corta), mentre se ci sono molti file (per molti si intende un centinaio), questa funzione se ne va in loop col DoEvents, facendo bloccare l'applicazione e l'IDE. Vi posto il codice:
Public Sub WaitForExecution(ByVal Component As Inet)
Do Until Component.StillExecuting = False
DoEvents
Loop
End Sub
Public Sub GetList(ByVal Prefix As String, ByVal MainForm As Object)
Dim FTPList As String
'Richiesta directory del server
MainForm.IntFTP.Execute MainForm.IntFTP.URL, "DIR " & Prefix 'Invio del comando
'Attesa dell'arrivo dei dati
WaitForExecution(MainForm.IntFTP)
FTPList = MainForm.IntFTP.GetChunk(1024, icString) 'Ricezione della lista
La funzione GetList ha come parametri la directory del server da cui ricavare la lista ed il form principale dell'applicazione (dato che si trova in un modulo a parte), mentre la funzione WaitForExecution accetta in ingresso il componente Inet da controllare; proprio nella funzione WaitForExecution avviene il "patatrac", cioè se la lista è lunga, il ciclo diventa un loop infinito.
Come posso ovviare a questo problema?
Grazie in anticipo