Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [VB6] ciclo per download di determinati files da cartella FTP

    salve ragazzi sto creando un exe che esagua un back di certi files da server a server passsando in locale.

    sono riuscito a stabilire la connessione con il server e il download di un singolo file funziona, ora pero dovrei riuscire a effettuare il download di determinati files che cominciano tutti per FTPL_

    ho pensato a un ciclo for each ma non riesco ad andare avanti.

    questo è il pezzo di codice che ho scritto e che non funziona naturalmente!
    codice:
    Private Sub cmdbackup_Click()  
       Dim bRet As Boolean  
       Dim nomefile As String 
        Dim localfile As String  
       Dim fso, folder, browse_file, file, chiave, valore    
          Set fso = CreateObject("scripting.filesystemobject") 
     Set browse_file = CreateObject("Scripting.Dictionary") 
     Set folder = fso.GetFolder(INICLS.ReadIni(ImpostazioniFile, "PROJECT1", "NOME", "")) 
         ' Controlla se esiste la cartella TEMP altrimenti la crea:       
      If Not (fso.FolderExists(App.path & "\" & "TEMP")) Then            
        fso.CreateFolder (App.path & "\" & "TEMP")     
               messaggio ("La cartella è stata creata")     
        End If           
     localfile = (App.path + "\" + "TEMP")       
       nomefile = ("FTPL_ " & "" & ".ini")       
        For Each file In folder.Files 
    DoEvents     
     bRet = FTPcls.D_load(nomefile, localfile)  
      If bRet Then      
       messaggio "download riuscito"   
      Else     
        messaggio "download non riuscito" 
       End If  
    Next
     End Sub
    michele farinelli

    ingegneria informatica e dell'automazione

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cosa significa esattamente "non funziona"? Errori? Messaggi?

    Cosa è FTPcls.D_load?

    localfile e nomefile sono sempre uguali nel ciclo ... come mai?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    avete ragione, faccio un po di chiarezza.

    FTPcls è una classe che gestisce le connessioni FTP con il componete INET (nativo di Win)
    U_load è una funzione della classe che serve per effettuare il download da cartella remota in locale.

    ecco il codice:
    codice:
    Public Function D_load(ByVal FileN As String, ByVal LocalDir As String) As Boolean
        Dim bRet As Boolean
        Dim szFileRemote As String
        Dim szDirRemote As String
        Dim szFileLocal As String
        Dim szTempString As String
        Dim nPos As Long
        Dim nTemp As Long
        Dim pippo As String
        
        If hConnection Then
            If FileN = "" Then
                D_load = False
                Exit Function
            End If
            szTempString = FileN
            szFileRemote = szTempString
            szFileLocal = LocalDir + "\" + szFileRemote
            'rcd szDirRemote
            rcd PrivatePath
            pippo = szFileLocal '& "\" & szFileRemote
            'bRet = FtpGetFile(hConnection, szFileRemote, szFileLocal & "\" & szFileRemote, False, INTERNET_FLAG_RELOAD, FTP_TRANSFER_TYPE_BINARY, 0)
            bRet = FtpGetFile(hConnection, szFileRemote, pippo, 0, 0, 2, 0)
         
            If (bRet) Then
                D_load = True
            Else
                D_load = False
            End If
            
        End If
    End Function
    la funzione è boleana e vuole in entrata il nome del file remoto e la dir locale dove salvare il file.

    per un singolo file funziona e l'ho testata.
    ora il mio problema è questo:
    io devo entrare in una cartella del mio server FTP (e fino a qui ci sono)
    scorrere tutti i file della cartella
    prendere solo quelli che iniziano per FTPL_
    ignorare gli altri
    copiarli in locale sulla cartella TEMP (che crea in automatico)


    pensavo ad un ciclo EACH FOR ma con il filesystem object non riesco a implementarlo?

    avete dei consigli


    grazie 1000!
    michele farinelli

    ingegneria informatica e dell'automazione

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il filesystemobject lavora con i file locali, non con i file di un server ftp remoto.

    Probabilmente con la classe FTPcls puoi inviare comandi ftp

    mgets

    per prelevare più files, oppure un comando

    ls

    per ottenere la lista dei file.

    Ma non conoscendo quella classe, dovrai essere tu a dirci qualcosa ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    il problema è proprio questo, la classe (ma anche lo stesso componente INET) forniscono funzioni per il download di un file in locale.

    quindi devo riuscire a creare un ciclo che ripeta questa operazione, per quante volte?

    finche il nome file remoto è FTPL_

    ma non so come fare a far eseguire questo controllo
    michele farinelli

    ingegneria informatica e dell'automazione

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma hai letto attentamente la mia risposta?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    ho letto e non posso inviare quei comandi!

    ho solo quella funzione che mi permette di lavorare sui download
    michele farinelli

    ingegneria informatica e dell'automazione

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da gargamella16
    ho letto e non posso inviare quei comandi!

    ho solo quella funzione che mi permette di lavorare sui download
    Ma no ... non so con la classe (dato che non la conosco) ma con il controllo Inet puoi usare sicuramente il metodo Execute per eseguire un comando ls sul server ftp ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    quindi tu dici di lasciare perdere la classe e fare tutto con il controllo inet?
    michele farinelli

    ingegneria informatica e dell'automazione

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da gargamella16
    quindi tu dici di lasciare perdere la classe e fare tutto con il controllo inet?
    Ti ripeto ... *non conoscendo* quella classe, come faccio a dirti di abbandonarla?

    Sicuramente con il controllo Inet puoi inviare comandi ... magari lo puoi fare anche tramite quella classe ma non posso saperlo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.